Commit Graph

97 Commits

Author SHA1 Message Date
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
123bbbca2c Merge pull request #8073 from vladfi1/re-frame-mw
Bring back MemoryWatcher, but without CoreTiming
2019-05-10 14:55:27 +02:00
239af3cdf9 Step MemoryWatcher at end of each video frame. 2019-05-08 11:20:59 +01:00
ab9ece9bca Replace MathUtil::Clamp with std::clamp 2019-05-04 23:12:17 +02:00
708bd3d9f7 TextureCache: Simplify XFB reconstruction
This also better handles in-memory interlaced XFB data placed by the CPU
by considering the stride from the VI.
2019-04-21 12:41:15 +10:00
38e67c0530 NetPlay: Change "Reduce Polling Rate" to poll twice per frame
Some games don't play nice when we poll only once per frame, so we'll poll twice instead.
2018-07-08 06:14:13 -04:00
40bb9974f2 Reformat all the things! 2018-04-12 21:28:39 +02:00
53684701fa HybridXFB: Fix lint errors 2017-11-17 22:11:31 -06:00
5a372020ea FifoPlayer: Generate fake VideoInterface updates 2017-11-17 22:11:29 -06:00
88d851ca45 Remove "Force Console as NTSC-J"
Nowadays that Dolphin detects regions of discs properly and doesn't
force programs with unknown regions (such as homebrew) into running
under a certain region, the "Force Console as NTSC-J" option is
practically useless for making anything run correctly. Enabling it
is however an easy way to totally break many non-Japanese games.
2017-11-06 08:23:30 +01:00
b2c41cec0a Config: Include SYSCONF in base layer
Settings that come from the SYSCONF are now included in Dolphin's
config system as part of the base layer. They are handled in a
special way compared to other settings to make sure they are only
loaded from and saved to the SYSCONF (to avoid different, possibly
contradicting sources of truth).
2017-08-11 15:36:31 +08:00
adbffc24e9 VideoInterface: Make clock frequency array constexpr
This is only ever read from.
2017-03-26 19:30:44 -04:00
ec5637fe46 VideoInterface: Utilize std::array where applicable 2017-03-26 19:28:56 -04:00
940aa6f32d VideoBackendBase: Convert FieldType into an enum class 2017-01-23 03:54:01 -05:00
794d0a9d7c Core: Move SI source files to their own directory 2017-01-20 19:33:24 -05:00
f85266df20 SConfig: Replace bNTSC with m_region
This lets us get rid of VideoInterface::SetRegionReg,
a huge hack in CEXIMemoryCard, and some minor things.
2017-01-02 20:57:48 +01:00
9f264c0872 AVIDump: Move CoreTiming into caller. 2016-10-10 12:03:18 +02:00
17e64b75a5 VideoInterface: Fix panic alert on interlaced fields.
For some reason this was only showing up in video software.

Not sure why.
2016-08-29 23:08:23 +12:00
35566316ed XFB: Send image to screen at start of field.
This is much more accurate to the hardware, and saves around 16ms
of latency.
2016-06-28 15:12:43 +12:00