Now that there's a reason for it, enable the call to the CloseGSPanel function (although it still won't delete the panel).
pcsx2-gui: Remove input recording keybinds when tools are disabled
recording: Log "Recording" > "Input Recording" consistency
pcsx2-gui: Don't attempt to modify recording items if main frame is null
pcsx2-gui: Add some help text for the recording options as well
pcsx2-gui: Disable `Toggle Recording Mode` if no recording is active
recording: Factor in DPIScaling when scaling VirtualPad window
recording: Add a reset button, hopefully better quality backgrounds for lower resolutions
recording: Improved VPad analog alignment
Co-authored-by: sonicfind
recording: Some final VirtualPad coordinate adjustments
* Moved ps1 init. Added Sample Rate change for SPU that gets set but not applied
* SPU: misc fixes on SPU ps1 mode init
* Init the soundbuffer to apply sample rate. Actually set the correct sample rate for the ps1 though it still won't apply
Co-authored-by: Gauvain 'GovanifY' Roussel-Tarbouriech <gauvain@govanify.com>
Co-authored-by: kenshen112 <obarrtimothy@gmail.com>
Shares a single filename between the two capture functions so that the .avi and .wav will match.
Default wavdump filename changed to "audio_recording.wav"
* RecordingReset is now a function of the InputRecording class
* TotalFrames is now signed
* InputRecordingControls refactor, IsRecordingPaused -> IsPaused
* Add check to keep frameCounter from overflowing (not like someone is gonna record a year's worth of inputs though).
* Code Formatting adjustments (more to do in a separate PR)
Ensures that no frames of input are skipped over on the initial load of a recording file or during a fast/full boot when a recording file is active. Improved consistency.
* Replaces the savestate load flag with a more general initial load flag to be used by full/fast boots and savestates.
* Have the Pcsx2App::ResetRecordingCounter() method mirror the similar method of the savestate class.
* Handle setting frameCounter to 0 in SetStartingFrame().
* FrameCounter, signed -> unsigned.
* Have SetFrameCounter handle the calculations for the relative frame displacement from the startingFrame.
* Optimizes InputRecording::controllerInterrupt.
* Flip the order of execution in inputRecordingFreeze.
* Set framecounter properly on full/fast boot.
* More accurately increment undo count
* Recording mode enum, NoneActive -> NotActive
* Changed IsMode method names and added an IsRecording method.
* Add methods designated to setting a recording to a certain mode.
Co-authored-by: Tyler Wilding <xtvaser@gmail.com>
* RecordingControls - > InputRecordingControls (+ function refactors & simplifications)
* Avoid mutating g_FrameCount - now use isolated frameCounter & startingFrame variables for input recordings
* Pause or resume emulation preemptively based on GUI actions
* Exclusively handle GS window title updates in FrameForGS
* recording: Only stop the current recording once the menuing hasnt been cancelled
* recording: Avoid changing menu option's state if the recording couldn't be played
* recording: Don't play a recording that uses a savestate, if no game is running
* recording: Don't modify `frameAdvance` flag when explicitly [un]pausing
These functions are only called when creating/playing a recording, and modifying the frameAdvance flag leads to unexpected behaviour (such as the game starting paused if the recording was made from "power-on")
* recording: Refactor and simplify `InputRecordingFile`
InputRecordingFile will no longer be concerned with loading the save-state when playing back an existing recording. This makes it much easier to only load the save-state if the file is valid and manipulate the emulation state correctly.
* recording: Update play logic with new refactor, resume emulation in the event of a failure
* recording/lint: spaces to tabs
* recording: Properly only examine controller 1A & 2A
The previous controller port checks in place never actually succeeded in their designated task. A new slot check in sio.cpp will perform this task instead.
* recording: Save the savestate in OpenNew() instead of open()
Ensures that the savesate could be saved before trying to create the actual input recording file. It will overwrite any previous backup savestate.
Also, allows for a simplified & easier to read code struture of open().
* Refactor and simplify `InputRecording`
Changes the return type of Play/Create from void to bool.
Optimizes Stop(), Pause(), and Unpause() call placements
Improved handling of emulation pause state, the recording menu on failures, and the conditioning of when a recording file should actually be unloaded.
For example, a currently loaded recording should not get unloaded if a user presses Play *but* chooses cancel in the file browser. However, the emulation should be paused during the duration of this action.
On the flipside, a loaded recording *should* get unloaded if the tools get disabled in settings AND emulation should resume if not already playing.
* recording: Simplify VirtualPad_Open_Click
Co-authored-by: Tyler Wilding <xtvaser@gmail.com>
Auto-Eject checkbox is a failsave for broken saves. Card (file)name to Memory Card (like a real PS2 you need to plug a memory card in port 1 to work).
Add usable to formatted to be obvious if you can use the memory card. Changed default column width.
FMV Aspect Ratio Override = Off is the same as the value for Aspect Ratio. Formatting fix for Zoom tooltip.
Double click on emulation windows also does fullscreen. Disable framelimiting means Uncapping the FPS.
Capped slowmotion adjust at 5% (it doesn't accept lower than 5 anyway). MTGS gets debug tag (useless for many).
* recording: Resolve hang when opening PAD plugin with the game paused
* pcsx2-gui: Forbid editing the PAD settings while emulation is paused by recording tools
* pcsx2-gui: Resume emulation before configuring PAD plugin, resume on return
* Reshuffle and reorganize menus. Add a help menu with links to the main website, forums, github page, wiki, and getting started pages.
* Change fast boot to an option.
* Make the Debug window menu option checkable, similar to the Log window.
* Move log settings to the Log menu.
* Add more information to the status bar.
* Moved a few things around. Added Compatibility to the Help menu.
* Removed Pcsx2 from the menu item names in the Help menu, and rearranged a bit.
* Fix crash on cancelling.
* Status bar changes.
* Add minimize/maximize flags to debug window.
* Don't strip out the maximize and minimize boxes on the debugger in weird Windows-only code.
* Add Help button. Fix Help dialog on Linux.
* Remove no longer used Windows code for Debug window.
Another small piece of #3451
Moves all VTLB pointer manipulation into dedicated classes for the purpose, which should allow the algorithm to be changed much more easily in the future (only have to change the class and recVTLB.cpp assembly since it obviously can't use the class)
Also some of the functions that manipulated the VTLB previously used POINTER_SIGN_BIT (which 1 << 63 on 64-bit) while others used a sign-extended 0x80000000. Now they all use the same one (POINTER_SIGN_BIT)
Note: recVTLB.cpp was updated to keep it compiling but the rest of the x86-64 compatibility changes were left out
Also, Cache.cpp seems to assume VTLB entries are both sides of the union at the same time, which is impossible. Does anyone know how this actually worked (and if this patch breaks it) or if it never worked properly in the first place?
Allocate memory in an x86-64-compatible way
Another part of #3451
Note: While this shouldn't change how anything works, it's been the #1 source of breakage of 32-bit builds in #3451 (it was the cause for the failure of win32 to allocate memory and the failure of linux-32 afterward) so we should definitely make sure it gets tested
see #3523 for more information
* The emulator version was hard-coded to PCSX2-1.5.X which is no longer accurate, it is no longer hard-coded and will use the correct version number the same way it is calculated to display in the window title.
* When creating a recording, the game name is preferred over the ISO name. This is determined via the GameDB. When playing back the recording, a simple check occurs to see if the game running is the same one that was used to make the recording. On the playback side, it always only checked with the ISO filename.
* git: Ignore uncaught linux build artifacts
* onepad-legacy: Return legitimate key event on `PADkeyEvent` call
Onepad-legacy was the plugin that was building and being used on my linux environment. I'm not sure if t hat's expected and normal 'onepad' has yet to take over.
* onepad: Return legitimate key event on `PADkeyEvent` call
* recording: Remove unnecessary `PadKeyDispatch(ev)` wrapping func
* recording: Cleanup key event handling when GSFrame CoreThread is paused
* recording: Refactor recording status check to be more explicit
* recording: Define additional key bindings for capitalized varient
Despite the advice of the docstrings in these files, on linux this seems to be required for the bindings to consistently fire.
* onepad: Declare `AnalyzeKeyEvent` not static
* recording: Ensure file extension is appended to recording file on linux
* recording: Correct typo in comment
* recording: Better wording around linux keybinding handling
* Remove unneeded `extern`
* IPU: Perform an interrupt on IPU_CTRL Reset.
Doing this reset performs a forced command end, meaning the IPU will run through the procedure of ending any command running and telling the core that it is done, even if there is no command currently active.
Fixes Fightbox
* Remove Fightbox patch
* VIF MSCAL instructions wait on VU T-Bit stop
Fixes:
The Sims
Spiderman 3
Sharks Tale
Maybe some bits of Over the Hedge
* Removed Spiderman 3 patches
* Fix VIF DMA resuming when stalled on tag
* Remove warning which doesn't really need to be there anymore
Don't interrupt if compare/overflow flag is already set
Removed patches for Harry Potter Prisoner of Azkeban and Chamber of Secrets as they should no longer be required.
Note - Some harry potter games still have the EE Timing Fix which may also not be required
* macOS compile
* Fix memprotect error on macOS
* Fix semaphore wait + thread cancel on macOS
* Fix timedlock timeout calculation
* spu2-x macOS
* onepad macOS support
* Add MacOS game controller db
* Disable onepad_legacy on macOS
* Fix spu2-x configuration crashes
* Make recompiler work on 32-bit macOS
* Use dylib extension for plugins on macOS
* Make app bundle on macOS
* Use git info for Info.plist version
This change makes the EE recompiler not hardcoded to working with 32 MB of RAM, and instead work with the amount of RAM set in Ps2MemSize::MainRam. The rest of PCSX2 seems to work fine with more than 32 MB of RAM - it is only the EE recompiler that has trouble. If the Ps2MemSize::MainRam value is not changed from the default 32 MB, there should be no change: 32 MB / 0x10000 = 0x200, the value that was there previously.
This may be helpful if anybody else in the future wants to emulate a PS2 dev kit with 128 MB or RAM, or maybe the PSX dvr thing which I think has 64 MB of RAM. I've confirmed that with the change, you could set Ps2MemSize::MainRam to 128 MB, and execute code with the recompiler that's above the first 32 MB of RAM, and do VIF and scratchpad DMA transfers from this upper memory as well.
* Modify VU addressing so it only multiplies by 8 before entering the program
Fixes issues with VU1 TPC being read multiplied by 8 (bad)
* Removed assert on SuperVU which no longer makes sense
* Change the minimum cmake version to a range. Uses the new policies of the newer versions if you are on them, taking care of CMP0054.
* Grab a newer version of FindHarfBuzz.cmake from Webkit that fixes the cmake warning the earlier one was giving.
* Add in -ftime-trace as an option on build.sh.
* Precompile PrecompiledHeader.h if you are using cmake 3.16+ and GCC. (Currently disabled on clang due to compilation issues.)
* Check if target_precompile_headers exists rather than by version.
Co-authored-by: scribam <scribam@users.noreply.github.com>
VS complains about errors so isolate the code in each file for TAS with macros.
Remove ifndef for m_capturingVideo as it is used for video capture menu.
Update all documentation for 1.6.
Source files for documentation are in md format and are kept in pcsx2\pcsx2\Docs, final exported/converted docs are in pdf format (Configuration_Guide and PCSX2_FAQ).
Update First time wizard to reflect recent documentation changes.
Update cmake to reflect recent documentation changes.
PO/POT/MO Localisation needs to be updated for the First time wizard to include the documentation changes.
NSIS installer needs to be updated to reflect the recent changes.