Commit Graph

115 Commits

Author SHA1 Message Date
ca9b34a6d1 Merge pull request #13394 from jordan-woyak/odd-even-pacing
VideoInterface: Adjust even-field to match odd-field pacing when PSB values differ.
2025-03-13 21:56:36 -04:00
0e2785a562 Merge pull request #13387 from jordan-woyak/frame-pacing
CoreTiming: Improve frame pacing
2025-03-13 14:23:18 -04:00
de01a790e1 VideoConfig: Eliminate bForceProgressive. 2025-03-10 19:02:43 -05:00
c4bd98c626 VideoInterface: Throttle before VBlank statistics counting. 2025-03-10 16:40:46 -05:00
9675c90890 VideoInterface: Throttle prior to SI poll. 2025-03-10 16:40:46 -05:00
5ff2af9b6a VideoInterface: Cleanup and minor fix in Update. 2025-03-04 20:39:14 -06:00
b28dcf3687 VideoInterface: Adjust even-field to match odd-field pacing when PSB values differ. 2025-03-04 04:52:24 -06:00
f09b71582e Core: Avoid (Some) Global System Accessor 2024-03-18 01:35:42 -07:00
95cba6be2b Core/Movie: Refactor to class, move to System.
A bit of global state remains (the `header` in `BeginRecordingInput()`) due to unclear lifetime requirements.
2024-01-15 08:05:30 +01:00
fc2ec826d4 FifoPlayer: Move instance to System. 2024-01-05 20:15:18 +01:00
07c035e659 Core/SystemTimers: Refactor to class, move to System. 2024-01-04 23:35:19 +01:00
24004af814 Video: polish aspect ratio related code comments to make it clearer 2023-12-18 00:28:14 +02:00
fdb7328c73 CheatSearch: Update Current Values at end of frame
At the end of each frame automatically update the Current Value for
visible table rows in the selected and visible CheatSearchWidget (if
any). Also update all Current Values in all CheatSearchWidgets when the
State changes to Paused.

Only updating visible table rows serves to minimize the performance cost
of this feature. If the user scrolls to an un-updated cell it will
promptly be updated by either the next VIEndFieldEvent or the State
transitioning to Paused.
2023-10-31 17:34:31 -07:00
10061aa22c VI: Prevent out-of-bounds access when clock register is a nonstandard value. 2023-06-02 20:06:07 +02:00
bf2f901a99 HW/SerialInterface: Refactor to class. 2023-03-12 16:08:56 +01:00
069280ddc6 HW/VideoInterface: Refactor to class. 2023-03-11 12:50:35 +01:00
2102e64299 HW/VideoInterface: Savestate members individually. 2023-03-11 12:48:02 +01:00
3b364c5c16 HW/CPU: Refactor to class, move to System. 2023-03-08 12:23:37 +01:00
8802f96b7e Fix uninitialized variable warnings (C26495) 2023-02-15 19:18:39 -08:00
72b4675c8f VideoInterface: Fix warning: declaration of ‘state’ shadows a previous local 2023-02-09 16:23:01 -08:00
df6f070a55 Core: Remove FPS, VPS and speed percentage from window title 2023-01-23 21:32:50 +01:00
23ad07b368 Add VISkip 2023-01-14 01:56:37 -05:00
74e1577a2c HW/ProcessorInterface: Refactor to class, move to Core::System. 2023-01-04 03:00:10 +01:00
c9558ecb4c CoreTiming: Refactor to class. 2022-11-27 03:47:12 +01:00
0a6fdb9c13 HW: Pass System to MMIO handlers. 2022-11-23 05:52:21 +01:00
65c7304bd4 VideoInterface: Simplify VideoInterface savestate code
VideoInterface: Simplify savestate code in VideoInterface
2022-10-13 15:21:22 -04:00
dbfb8408d9 HW: Use unsigned indices in RegisterMMIO where applicable
base is an unsigned variable, so we can make things little more
consistent by making the loop index unsigned so we aren't doing bit
arithmetic with signed types.

MemoryInterface already does this, so we can leave it alone.

No behavioral changes, just a consistency thing.
2022-10-11 09:27:34 -04:00
e8221d7948 Common/PointerWrap: Remove DoPOD
This was added in 385d8e2b15, but became somewhat redundant with Do in 4c7bbd96e4, and completely redundant now that std::is_trivially_copyable_v is well-supported.
2022-10-06 11:25:36 -07:00
9c944d5734 HW: Move VideoInterface variables to Core::System. 2022-10-04 02:25:12 +02:00
d6331c1e71 Config: Port remaining Interface settings to new config system. 2021-12-31 17:40:04 +01:00
9c4b2b65b4 Config: Port Input setting to new config system. 2021-12-30 21:50:36 +01:00
797d0b7b1b VI: Implement post-scanout XFB output
This adds about a frame of latency, and since most games don't change
VI registers during scanout, we can get away with outputting the XFB at
the start of scanout. WWE Crush Hour is the (only currently known)
exception, which has flickering problems when doing it this way.

This adds a path to perform the output at the end of scanout, and gates
it behind an option which defaults to using the latency-reducing
pre-scanout path.
2021-08-03 23:37:50 -04:00
e149ad4f0a treewide: convert GPLv2+ license info to SPDX tags
SPDX standardizes how source code conveys its copyright and licensing
information. See https://spdx.github.io/spdx-spec/1-rationale/ . SPDX
tags are adopted in many large projects, including things like the Linux
kernel.
2021-07-05 04:35:56 +02:00
3c7c2dfaa1 Implement Cursor Locking and new input focus checks for it 2021-05-27 10:31:12 +03:00
a0f9b041a0 Core: Convert logging over to fmt pt.2
Continues the core migration of logs up to the EXI handling code.
2020-11-20 10:05:44 -05:00
f72b756778 VideoCommon: Don't round the refresh rate
We now provide a double to the FPS counter and exact values
to FIFO recording and frame dumping.
2020-07-28 21:01:38 +02:00
9eb36afeb0 Core: Call Movie::FrameUpdate per field, not per line
Fixes https://bugs.dolphin-emu.org/issues/12066.

I must've only tested the frame counter with an earlier version
of the PR that broke this, not the final version...
2020-06-20 19:32:08 +02:00
812ad4257c Core: Skip duplicate frames when using frame advance
It used to be the case that frame advance skipped duplicate frames
(i.e. it would take 30 frame advances to get through one second
of emulated time in a 30 fps game), but this broke in 9c5c3c0.
Skipping duplicate frames making TASing less annoying.
2020-04-09 11:39:29 +02:00
1a42355f96 Core: Clarify Callback_VideoCopiedToXFB and FrameUpdate 2020-04-09 00:21:04 +02:00
903db48280 DolphinQt: Give hotkeys their own "background input" setting. 2020-02-10 20:06:29 -06:00
d66050375c Merge pull request #8347 from hosaka-corp/frame-advance-alignment
Align frame advance and movies to full field boundaries
2019-11-19 19:26:35 +01:00
9c5c3c055e Align frame advance and movies to full field boundaries 2019-11-18 15:05:06 -06:00
913cb08066 Merge pull request #8456 from jordan-woyak/input-gate-race-fix
InputCommon: Make the "input gate" not racy.
2019-11-11 10:59:49 +10:00
9db1ce8ef9 Merge pull request #8436 from JosJuice/vi-wii-freeloader
VideoInterface: Don't crash when running Wii Freeloader
2019-11-08 10:56:25 +10:00
85ceb37ccd InputCommon: Make the "input gate" not racey. 2019-11-06 16:31:02 -06:00
371e3f1021 VI: Adjust start/end of ACV region for fields
This wasn't changed when halfline counts were changed to 0-based. Also
included is a diagram showing an understanding of how the values in the VI
timing registers maps to the video signal.
2019-10-31 21:04:22 -04:00
090f04e01c VideoInterface: Don't crash when running Wii Freeloader
Datel's Wii Freeloaders set m_PictureConfiguration.WPL to 0 for
a while. Not sure if the fix in this commit is a proper fix or
just a hack, since I'm not very familiar with this code.

With this change, it's possible to run a Wii Freeloader if you
are running an old enough version of the Wii Menu, but the
"coloured bars" that Datel reference in their documentation
never show up. The screen just freezes for a few seconds instead.
2019-10-27 15:46:33 +01:00
9e3b867c6a VideoInterface: start counting half-lines at 0 instead of 1
- Re-organize VideoInterface::Update() to count half-lines starting at 0 instead of 1
- Use horizontal position when checking if we should assert some display interrupt
- Add some more descriptive comments
2019-08-26 20:43:26 -05:00
a3d8a8be06 NetPlay: Remove 'reduce polling rate' option
With the SI poll line count fixed, pretty much all games are polling
twice per frame anyways, making this option superfluous. Since it's a
bit of a gross hack and makes DTMs incompatible with console, let's
just bin it.
2019-08-26 02:11:49 -04:00
ac809c36e1 SI: Convert SIPOLL's lines value to half lines
SI represents polling sample rate in lines, not half lines. It needs to be
multiplied by 2 for VI, which uses half lines.
2019-07-08 23:07:34 -04:00