Skip to content

Conversation

@sestain
Copy link
Contributor

@sestain sestain commented Sep 8, 2025

Description of Changes

Add video splitting for every resolution change. Allow recording from frame 0 (if using "Pause on Start") or when resolution is 0x0 / No Image, this will create blank video with 640x480 resolution. Before on blank frames it used last visible frame that was visible but now it's blank.

Rationale behind Changes

Instead of stretching video we can keep the resolution as is and just create a new file for each resolution, and later stretch or do something else with raw footage. Fixes not being able to start video capture when starting emulation. Fixes blanks using last visible frame.

Suggested Testing Steps

Test recording from frame 0, when resolution changes, during 0x0 resolution (should result in a 640x480 video).

Did you use AI to help find, test, or implement this issue or feature?

Yes, asked copilot to explain why blank frame used last visible frame in video capture.


This works but in my opinion code needs refactoring.

@github-actions github-actions bot added the GS label Sep 8, 2025
Console.Error("GS: Unknown video mode. Please report: https://github.com/PCSX2/pcsx2/issues");
return 0;
return 60;
//Console.Error("GS: Unknown video mode. Please report: https://github.com/PCSX2/pcsx2/issues");
Copy link
Contributor

@Mrlinkwii Mrlinkwii Sep 8, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

may i ask why this was removed ? , also why are you defaulting to 60

Copy link
Contributor Author

@sestain sestain Sep 8, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Video capture didn't start if fps was 0 due to assert(fps != 0). Like I said, code works but needs refactoring. Defaulted to 60 because then video capture would be using it. There most likely is better ways to do this.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what happens is you want to record a PAL game ?

Copy link
Contributor Author

@sestain sestain Sep 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It records at 50 as it should. Don't see how pal would be affected by this change. Unless on PAL Progressive which isn't supported by PCSX2 afaik and only used accessible by homebrew also.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also I'm wondering why does GetTvRefreshRate() even exist when there's VMManager::GetFrameRate() which calls GetVerticalFrequency() which gives the fps like GetTvRefreshRate would. I'm thinking that GetTvRefreshRate() call should get replaced by GetVerticalFrequency() or VMManager::GetFrameRate() call.

Copy link
Contributor Author

@sestain sestain Sep 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also to my understanding this would have given 0 fps to video capture which would cancel it if 720p or 1080i was used. Which wouldn't happen now with my change to it but GetVerticalFrequency() would also handle this correctly.

@F0bes
Copy link
Member

F0bes commented Sep 8, 2025

This works but in my opinion code needs refactoring.

This should be drafted then.

@F0bes F0bes marked this pull request as draft September 8, 2025 19:20
@Mrlinkwii Mrlinkwii added this to the Release 2.X milestone Nov 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants