mirror of
https://github.com/marqs85/ossc
synced 2026-11-04 06:07:22 +03:00
Add "PC SoG/CS coast" compatibility option
tvp_source_setup() disables the TVP7002 internal H-PLL coast for every PC-type preset. That is right for RGBHV, but with sync-on-green or composite sync the serration pulses during vsync disturb the H-PLL every frame; on a NeXTstation Color (1120x832, SoG) this caused continuous horizontal jitter, jitter in the top third of the picture and a periodic HDMI re-sync. With the option on, coast is re-enabled after setup when the sync source is SOG or CSYNC; RGBHV is untouched. Default Off, so existing behaviour is unchanged. Stored as profile item id 68. On the NeXT, this option together with the existing settings Analog sync LPF = 10 MHz, ADC PLL BW = Low and H-PLL Pre/Post-Coast = 4/4 ran 19 minutes without a sync loss, mode re-program or IT6613 video-stable change. SPARCstation 20 framebuffers (ZX, TurboGX) over composite sync are stable without it. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WiXHy7Jhh5yTdsBaenucgw
This commit is contained in:
1 parent
f3b2419da8
commit
5fd71e8312
6 files changed
+19
-1
No files matched your search
@@ -180,6 +180,13 @@ inline void tvp_set_hpllcoast(alt_u8 pre, alt_u8 post)
|
||||
tvp_writereg(TVP_HPLLPOSTCOAST, post);
|
||||
}
|
||||
|
||||
// Enable/disable the internal H-PLL coast signal (MISCCTRL4 bit 2, "Coast Dis")
|
||||
void tvp_set_coast_enable(alt_u8 enable)
|
||||
{
|
||||
alt_u8 val = tvp_readreg(TVP_MISCCTRL4) & 0xFB;
|
||||
tvp_writereg(TVP_MISCCTRL4, val | (enable ? 0x00 : 0x04));
|
||||
}
|
||||
|
||||
inline void tvp_set_linelen_tol(alt_u8 val) {
|
||||
tvp_writereg(TVP_LINELENTOL, val);
|
||||
}
|
||||
|
||||
@@ -90,6 +90,8 @@ inline void tvp_powerup();
|
||||
|
||||
inline void tvp_set_hpllcoast(alt_u8 pre, alt_u8 post);
|
||||
|
||||
void tvp_set_coast_enable(alt_u8 enable);
|
||||
|
||||
inline void tvp_set_linelen_tol(alt_u8 val);
|
||||
|
||||
inline void tvp_set_ssthold(alt_u8 vsdetect_thold);
|
||||
|
||||
Reference in new issue
Block a user