File tree 3 files changed +4
-14
lines changed
3 files changed +4
-14
lines changed Original file line number Diff line number Diff line change 1
1
# Progressive Field
2
2
3
3
## Description
4
- Checks the behaviour of FIELD(in CSR) when the CMOD(in SMODE1)
5
- and VFP(in SYNCHV) bits are changed.
4
+ Checks the behaviour of FIELD(in CSR) when the VFP(in SYNCHV) bits are changed.
6
5
7
6
## PCSX2 Behaviour
8
7
PCSX2 would swap FIELD unconditionally, this caused some progressive games to
@@ -16,20 +15,16 @@ This was later found to be incorrect behaviour.
16
15
## Findings
17
16
The original finding determined that when the video mode is set to progressive, FIELD is set.
18
17
19
-
20
18
Turns out, the SMODE2 interlace bit has no control over FIELD behaviour.
21
19
22
- The actual behaviour is determined by CMOD (bits 13 & 14 in SMODE1)
23
- and VFP (bottom bits in SYNCV)
20
+ The actual behaviour is determined by VFP (bottom bits in SYNCV)
24
21
25
- ![ img] ( https://i.imgur.com/dsFYHm5.jpg )
26
22
27
23
## Related PR(s) or Issue(s)
28
24
https://github.com/PCSX2/pcsx2/pull/6256
29
25
30
26
https://github.com/PCSX2/pcsx2/pull/6342
31
- ## Expected Results
32
27
33
- When testing CMOD 1, odd VFPs should say ` FIELD IS CHANGING `
28
+ ## Expected Results
34
29
35
- When testing CMOD 0, no matter the VFP, it should say ` FIELD IS NOT CHANGING `
30
+ When testing odd VFPs should say ` FIELD IS CHANGING ` , even VFPs should say ` FIELD IS NOT CHANGING `
Original file line number Diff line number Diff line change @@ -52,11 +52,6 @@ int main(void)
52
52
// Enable VSYNC event
53
53
GSCSR = 0x8 ;
54
54
55
- printf ("Checking FIELD when CMOD is set to 1\n" );
56
- SMODE1 |= (1 << 13 );
57
- test_gs_field ();
58
- printf ("Checking FIELD when CMOD is set to 0\n" );
59
- SMODE1 &= ~(2 << 13 );
60
55
test_gs_field ();
61
56
62
57
SleepThread ();
You can’t perform that action at this time.
0 commit comments