PS1:Video Output Notes: Difference between revisions
(A somewhat rambling description of the PSX clocking and video generation) |
|||
(10 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
The video subsystem on the | == Video clocks == | ||
The video subsystem on the PS1 works in sometimes confusing ways, especially if you are running software that uses a video standard different from the one that the console was intended to operate in. In addition to this the behavior changed slightly between the PU-7/PU-8/PU-18 board and the PU-20 and subsequent boards. To make sense of this, you need to look at how the clocking in the PS1 works - there are two basic clock sources, one for the CPU and one for the GPU. The CPU clock source is the same across all models and regional variants and is always 67.7378MHz - the actual CPU is clocked at 1/2 of this and this somewhat strange looking frequency was chosen so it could also be used for the sound subsystem as it's an exact integer multiple of the 44.1kHz CD sampling rate. | |||
The GPU clock is about 53MHz, with the exact frequency changing between NTSC and PAL - NTSC uses 53.693(18) Mhz and PAL uses 53.203425 MHz - the reason the NTSC reference contains a repeating decimal is that it's actually defined as "315/88 MHz". The difference between these 2 frequencies is the reason that a PS1 set to the "wrong" mode generates incorrect timing, because the logic in the CPU uses the correct divisors for the intended mode even when the external clock is wrong. A practical example of the result of this is that if you have a PAL console and run NTSC software on it the intended frame rate of about 59.94Hz will actually come out as 59.39Hz - an error of about 1% slower. The same principle applies in reverse when running PAL software on an NTSC console, except here the error is in the opposite direction and the game runs about 1% faster. | |||
=== Early machines (PU-7/PU-8 and PU-18 boards) === | |||
On the original production machines and up until the SCPH-700x "Dual Shock" releases, the CPU and video clocks were derived from separate oscillators, and the oscillator that drove the GPU was matched with the video standard for the region the console was locked to. One exception to this were the SCPH-300x "Net Yaroze" machines, which had both oscillators installed since they were not region locked. | |||
On these machines, the GPU also outputs the color subcarrier for the video encoder - this is derived by dividing down the GPU clock by a fixed ratio, and the divisors (15 in NTSC mode and 12 in PAL mode) are chosen to generate the correct subcarrier frequency when driven by the appropriate GPU clock. When you switch modes using the same clock source, the resulting subcarrier has the same about 1% error that the line and frame rates do, but since the color subcarrier is much more closely specified and as a result the TV displays either black and white or wildly distorted color. Supplying the correct clock (either by adding the other oscillator or installing a DFO) will also fix the subcarrier and enable correct color display. | |||
A PAL specific hack to these older machines was to disconnect the subcarrier input and PAL/NTSC pin on the video encoder, tie the select pin low (forcing PAL mode) and connecting the SCin pin to either a 4.43MHz oscillator or the output of a fixed /12 circuit clocked from the GPU clock - this resulted in the machine outputting standard PAL in 50Hz mode and PAL60 in 60Hz mode. Note that if you have one of these machines that uses the /12 circuit and you intend to install a DFO you will need to remove the old video mod first or you will get broken composite in NTSC mode. | |||
=== Later machines (PU-20 and onwards) === | |||
As part of the ongoing cost reductions, the frequency generation schema was changed in the PU-20 revision to use a single crystal driving a clock synthesizer that produced both the CPU and GPU clocks and also directly generated the color subcarrier. The new crystal frequencies were 14.3(18)MHz (NTSC) and 17.734475 MHz (PAL), again chosen for their harmonic relationship to the color subcarriers and other video frequencies. In this case, the color subcarrier generation was simpler - it's just 1/4 of the crystal frequency in both modes. A side effect of this is that the color subcarrier does not change with the selected video mode and will always match the one used by the native video format. So an NTSC console will always generate a 3.579(54)MHz color subcarrier even when switched to PAL mode and a PAL console will always generate a 4.43361875 MHz subcarrier even when set to NTSC mode. | |||
Installing a DFO on these machines will correct the video line and frame frequencies, but it won't change the color subcarrier, because that's fixed in hardware. The significance of this will vary depending on the model of console and TV you have - in the specific case of a PAL console switched to NTSC mode and displayed on a European spec TV set, it may work without problems - although the resulting "NTSC-4.43" video format was never used anywhere for broadcasting, it happens to be what a lot of multiple standard PAL VCRs output when playing back NTSC tapes and hence was often supported by Euro spec TVs. | |||
Going the other way (PAL software on a NTSC machine) is likely to give you a lot more problems - simply because the resulting non-standard video format (say "PAL-3.58"), was not historically used for anything and is hence not generally supported by north American TVs, even on the limited number of TVs that support 50Hz in the first place. | |||
If you have installed a DFO on these models then you can carry out a further modification that disconnects the video encoder subcarrier clock input from the clock synthesizer and wires it back to the subcarrier output pin on the GPU - this restores the same behavior that existed on the previous units where the subcarrier is switched to match the current video mode. | |||
== Output formats == | |||
All versions of the PlayStation 1 output Composite, Y/C (S-Video) and RGB (Luma sync) from the multi AV socket. Some earlier models had additional video outputs on separate connectors. The system can be [[PS1:CSYNC Output Mod|modded to output CSYNC]] if required for devices such as Extron Crosspoints. | |||
=== SCPH-1000 === | |||
This is the original first generation Japanese release unit - it has dedicated outputs for both S-Video and composite with stereo audio and a 2.5mm power jack for an RF unit | |||
=== SCPH-3000/SCPH-3500/SCPH-5000/SCPH-1001/SCPH-1002 === | |||
These are the later Japanese units and the initial production models of the NTSC:U/C and PAL machines. They had the RCA jacks for composite video, stereo audio and the RFU power jack, but no S-Video. | |||
=== All later models === | |||
Starting from the SCPH-550x, the rear panel jacks were removed and the only video outputs were on the Multi-AV socket | |||
== Supported Resolutions== | |||
The following are resolutions that the PlayStation is capable of outputting. | |||
{| class="wikitable" | |||
!Progressive | |||
!Interlaced | |||
|- | |||
|256x240 | |||
|256x480 | |||
|- | |||
|320x240 | |||
|320x480 | |||
|- | |||
|384x240 | |||
|384x480 | |||
|- | |||
|512x240 | |||
|512x480 | |||
|- | |||
|640x240 | |||
|640x480 | |||
|} | |||
==Resolution Switching == | |||
Almost all PlayStation games output in 240p. A few PlayStation games run at a 480i resolution. Some games mix the two resolutions, which can cause problems with capture cards, upscalers, and flat-screen TV's; as digital solutions need to "re-sync" when resolutions change. There are two common scenarios in which you'll see both resolutions used. | |||
=== Main Menu 480i / Gameplay 240p === | |||
Many games have title screens in 480i, but gameplay and the pause menu's are all 240p. This is almost never an issue, as even though there might be a 5-10 second delay for flat-screens to change resolutions after leaving the main menu, the TV will often recover before the game is even done loading. Also, [https://shmups.system11.org/viewtopic.php?f=6&t=54382 some games are 100% 480i], meaning the resolution never changes. | |||
===Gameplay 240p / Pause Menu's 480i === | |||
A few games such as Silent Hill, Dino Crisis and Chrono Cross have gameplay that's 240p, but when you enter a menu, it switches to 480i. On a CRT, this made no difference at all - Since both resolutions are 15KHz, your CRT TV (or RGB monitor) sees the resolutions as the same and the switching is so fast that you might not even realize there's a difference. | |||
Unfortunately, on flat-screens, this can cause a black screen delay, which means when you leave the menu in Silent Hill, you'll probably start being killed by zombies before your TV finishes switching back to 240p. At the moment, the [https://www.retrogamingcables.co.uk/SONY-PLAYSTATION-HD-RAD2X-CABLE RAD2x] and RetroTINK products are the fastest device to switch between resolutions when gaming on a TV. | |||
Streamers who split the PlayStation's output signal to game on CRT's, then send the other signal to a capture card have an interesting option: Use a scaler that processes the 240p signal ''wrong'' as 480i. Since the scaler always thinks the PlayStation is outputting 480i, there's zero delay in the resolution switching. Once again, this scaler is '''not''' recommended for gaming, but for capture / streaming, it's certainly a decent option. Check out [http://www.retrorgb.com/why-you-should-avoid-certain-retro-gaming-scalers.html this page & video for more details]. | |||
==Transparency and Color Banding Issues== | |||
[[File:PS1 Color Banding Issue 1.jpg|thumb|Color banding issue ([https://twitter.com/WobblingP/status/1539990354090496001 Credit to WobblingPixels])]] [[File:PS1 Color Banding Issue 2.png|thumb|Color banding issue]] | |||
As described on the [[PS1:PS1 Model Differences]] page, the PU-7 motherboards use outdated VRAM, resulting in lower (5-bit) shading and worse transparency blending. This leads to both slowdowns when transparency effects are on screen (video below) and color banding. | |||
<div class="inline-thumb"> [[File:PS1 Color Banding Issue 3-1.jpg|thumb|Color banding issue ([https://twitter.com/WobblingP/status/1539990354090496001 Credit to WobblingPixels])]] [[File:PS1 Color Banding Issue 3-2.jpg|thumb|No color banding issue ([https://twitter.com/WobblingP/status/1539990354090496001 Credit to WobblingPixels])]] </div> | |||
<div class="inline-thumb"> [[File:PS1 Color Banding Comparison.mp4|thumb|Transparency slowdown. Note how unsynced the videos become toward the end.]] </div> |
Latest revision as of 16:28, 2 June 2024
Video clocks
The video subsystem on the PS1 works in sometimes confusing ways, especially if you are running software that uses a video standard different from the one that the console was intended to operate in. In addition to this the behavior changed slightly between the PU-7/PU-8/PU-18 board and the PU-20 and subsequent boards. To make sense of this, you need to look at how the clocking in the PS1 works - there are two basic clock sources, one for the CPU and one for the GPU. The CPU clock source is the same across all models and regional variants and is always 67.7378MHz - the actual CPU is clocked at 1/2 of this and this somewhat strange looking frequency was chosen so it could also be used for the sound subsystem as it's an exact integer multiple of the 44.1kHz CD sampling rate.
The GPU clock is about 53MHz, with the exact frequency changing between NTSC and PAL - NTSC uses 53.693(18) Mhz and PAL uses 53.203425 MHz - the reason the NTSC reference contains a repeating decimal is that it's actually defined as "315/88 MHz". The difference between these 2 frequencies is the reason that a PS1 set to the "wrong" mode generates incorrect timing, because the logic in the CPU uses the correct divisors for the intended mode even when the external clock is wrong. A practical example of the result of this is that if you have a PAL console and run NTSC software on it the intended frame rate of about 59.94Hz will actually come out as 59.39Hz - an error of about 1% slower. The same principle applies in reverse when running PAL software on an NTSC console, except here the error is in the opposite direction and the game runs about 1% faster.
Early machines (PU-7/PU-8 and PU-18 boards)
On the original production machines and up until the SCPH-700x "Dual Shock" releases, the CPU and video clocks were derived from separate oscillators, and the oscillator that drove the GPU was matched with the video standard for the region the console was locked to. One exception to this were the SCPH-300x "Net Yaroze" machines, which had both oscillators installed since they were not region locked.
On these machines, the GPU also outputs the color subcarrier for the video encoder - this is derived by dividing down the GPU clock by a fixed ratio, and the divisors (15 in NTSC mode and 12 in PAL mode) are chosen to generate the correct subcarrier frequency when driven by the appropriate GPU clock. When you switch modes using the same clock source, the resulting subcarrier has the same about 1% error that the line and frame rates do, but since the color subcarrier is much more closely specified and as a result the TV displays either black and white or wildly distorted color. Supplying the correct clock (either by adding the other oscillator or installing a DFO) will also fix the subcarrier and enable correct color display.
A PAL specific hack to these older machines was to disconnect the subcarrier input and PAL/NTSC pin on the video encoder, tie the select pin low (forcing PAL mode) and connecting the SCin pin to either a 4.43MHz oscillator or the output of a fixed /12 circuit clocked from the GPU clock - this resulted in the machine outputting standard PAL in 50Hz mode and PAL60 in 60Hz mode. Note that if you have one of these machines that uses the /12 circuit and you intend to install a DFO you will need to remove the old video mod first or you will get broken composite in NTSC mode.
Later machines (PU-20 and onwards)
As part of the ongoing cost reductions, the frequency generation schema was changed in the PU-20 revision to use a single crystal driving a clock synthesizer that produced both the CPU and GPU clocks and also directly generated the color subcarrier. The new crystal frequencies were 14.3(18)MHz (NTSC) and 17.734475 MHz (PAL), again chosen for their harmonic relationship to the color subcarriers and other video frequencies. In this case, the color subcarrier generation was simpler - it's just 1/4 of the crystal frequency in both modes. A side effect of this is that the color subcarrier does not change with the selected video mode and will always match the one used by the native video format. So an NTSC console will always generate a 3.579(54)MHz color subcarrier even when switched to PAL mode and a PAL console will always generate a 4.43361875 MHz subcarrier even when set to NTSC mode.
Installing a DFO on these machines will correct the video line and frame frequencies, but it won't change the color subcarrier, because that's fixed in hardware. The significance of this will vary depending on the model of console and TV you have - in the specific case of a PAL console switched to NTSC mode and displayed on a European spec TV set, it may work without problems - although the resulting "NTSC-4.43" video format was never used anywhere for broadcasting, it happens to be what a lot of multiple standard PAL VCRs output when playing back NTSC tapes and hence was often supported by Euro spec TVs.
Going the other way (PAL software on a NTSC machine) is likely to give you a lot more problems - simply because the resulting non-standard video format (say "PAL-3.58"), was not historically used for anything and is hence not generally supported by north American TVs, even on the limited number of TVs that support 50Hz in the first place.
If you have installed a DFO on these models then you can carry out a further modification that disconnects the video encoder subcarrier clock input from the clock synthesizer and wires it back to the subcarrier output pin on the GPU - this restores the same behavior that existed on the previous units where the subcarrier is switched to match the current video mode.
Output formats
All versions of the PlayStation 1 output Composite, Y/C (S-Video) and RGB (Luma sync) from the multi AV socket. Some earlier models had additional video outputs on separate connectors. The system can be modded to output CSYNC if required for devices such as Extron Crosspoints.
SCPH-1000
This is the original first generation Japanese release unit - it has dedicated outputs for both S-Video and composite with stereo audio and a 2.5mm power jack for an RF unit
SCPH-3000/SCPH-3500/SCPH-5000/SCPH-1001/SCPH-1002
These are the later Japanese units and the initial production models of the NTSC:U/C and PAL machines. They had the RCA jacks for composite video, stereo audio and the RFU power jack, but no S-Video.
All later models
Starting from the SCPH-550x, the rear panel jacks were removed and the only video outputs were on the Multi-AV socket
Supported Resolutions
The following are resolutions that the PlayStation is capable of outputting.
Progressive | Interlaced |
---|---|
256x240 | 256x480 |
320x240 | 320x480 |
384x240 | 384x480 |
512x240 | 512x480 |
640x240 | 640x480 |
Resolution Switching
Almost all PlayStation games output in 240p. A few PlayStation games run at a 480i resolution. Some games mix the two resolutions, which can cause problems with capture cards, upscalers, and flat-screen TV's; as digital solutions need to "re-sync" when resolutions change. There are two common scenarios in which you'll see both resolutions used.
Main Menu 480i / Gameplay 240p
Many games have title screens in 480i, but gameplay and the pause menu's are all 240p. This is almost never an issue, as even though there might be a 5-10 second delay for flat-screens to change resolutions after leaving the main menu, the TV will often recover before the game is even done loading. Also, some games are 100% 480i, meaning the resolution never changes.
Gameplay 240p / Pause Menu's 480i
A few games such as Silent Hill, Dino Crisis and Chrono Cross have gameplay that's 240p, but when you enter a menu, it switches to 480i. On a CRT, this made no difference at all - Since both resolutions are 15KHz, your CRT TV (or RGB monitor) sees the resolutions as the same and the switching is so fast that you might not even realize there's a difference.
Unfortunately, on flat-screens, this can cause a black screen delay, which means when you leave the menu in Silent Hill, you'll probably start being killed by zombies before your TV finishes switching back to 240p. At the moment, the RAD2x and RetroTINK products are the fastest device to switch between resolutions when gaming on a TV.
Streamers who split the PlayStation's output signal to game on CRT's, then send the other signal to a capture card have an interesting option: Use a scaler that processes the 240p signal wrong as 480i. Since the scaler always thinks the PlayStation is outputting 480i, there's zero delay in the resolution switching. Once again, this scaler is not recommended for gaming, but for capture / streaming, it's certainly a decent option. Check out this page & video for more details.
Transparency and Color Banding Issues
As described on the PS1:PS1 Model Differences page, the PU-7 motherboards use outdated VRAM, resulting in lower (5-bit) shading and worse transparency blending. This leads to both slowdowns when transparency effects are on screen (video below) and color banding.