Difference between revisions of "Optimal timings"
(18 intermediate revisions by 3 users not shown) | |||
Line 18: | Line 18: | ||
| <pre>Modeline "ossc_nes_1280x720_60.08" 80.55 1280 1385 1510 1705 720 729 738 786 -hsync -vsync</pre> | | <pre>Modeline "ossc_nes_1280x720_60.08" 80.55 1280 1385 1510 1705 720 729 738 786 -hsync -vsync</pre> | ||
|- | |- | ||
− | |SNES | + | |SNES 256x240/224 @60.10Hz |
|341* / 262 / @<u><span title="21.477272MHz ÷ 4">5.37MHz</span></u>(NTSC) @<u><span title="(3 ÷ 10) × 17.734475MHz">5.32MHz</span></u>(PAL) [http://problemkaputt.de/fullsnes.htm#snestiminghvcounters] | |341* / 262 / @<u><span title="21.477272MHz ÷ 4">5.37MHz</span></u>(NTSC) @<u><span title="(3 ÷ 10) × 17.734475MHz">5.32MHz</span></u>(PAL) [http://problemkaputt.de/fullsnes.htm#snestiminghvcounters] | ||
|256x240 | |256x240 | ||
Line 39: | Line 39: | ||
| | | | ||
|- | |- | ||
− | |N64 | + | |N64 320x237 @59.82Hz |
|773.5 / 263 / @<u><span title="((17 ÷ 5) ÷ 4) × 14.31818MHz">12.17MHz</span></u>(NTSC) @<u><span title="((14 ÷ 5) ÷ 4) × 17.734475MHz">12.41MHz</span></u>(PAL) [http://www.datasheets360.com/part/detail/mx8350/-7133688394404043430/?alternatePartManufacturerId=0][https://assemblergames.com/threads/direct-hdmi-output-for-n64-and-other-consoles.42764/page-2] | |773.5 / 263 / @<u><span title="((17 ÷ 5) ÷ 4) × 14.31818MHz">12.17MHz</span></u>(NTSC) @<u><span title="((14 ÷ 5) ÷ 4) × 17.734475MHz">12.41MHz</span></u>(PAL) [http://www.datasheets360.com/part/detail/mx8350/-7133688394404043430/?alternatePartManufacturerId=0][https://assemblergames.com/threads/direct-hdmi-output-for-n64-and-other-consoles.42764/page-2] | ||
|320x240 | |320x240 | ||
Line 46: | Line 46: | ||
| | | | ||
|- | |- | ||
− | |PlayStation | + | |PlayStation 320x224 @59.82Hz |
− | |426.625 | + | |426.625 / 263 / @<u><span title="exact frequency varies between boards">6.71MHz</span></u>(NTSC) @<u><span title="exact frequency varies between boards">6.65MHz</span></u>(PAL) [http://problemkaputt.de/psx-spx.htm#gputimings] [http://forum.fobby.net/index.php?t=msg&&th=1117&goto=4132#msg_4132] |
|320x240 | |320x240 | ||
|H.samplerate=426.60 | |H.samplerate=426.60 | ||
Line 53: | Line 53: | ||
| | | | ||
|- | |- | ||
− | |PlayStation | + | |PlayStation 384x224 @59.82Hz |
− | |487. | + | |487.571 / 263 / @<u><span title="exact frequency varies between boards">7.67MHz</span></u>(NTSC) |
|384x240 | |384x240 | ||
− | |H.samplerate=487. | + | |H.samplerate=487.55, H.synclen=63, H.backporch=18 |
|Example games: Ape Escape, Grandia, Oddworld, Tomb Raider 1 & 2 | |Example games: Ape Escape, Grandia, Oddworld, Tomb Raider 1 & 2 | ||
| | | | ||
|- | |- | ||
− | |PlayStation | + | |PlayStation 256x224 @59.82Hz |
− | |341. | + | |341.30 / 263 / @<u><span title="exact frequency varies between boards">5.369MHz</span></u>(NTSC) |
|256x240 | |256x240 | ||
− | |H.samplerate=341. | + | |H.samplerate=341.30 |
|Example games: Adventure of Little Ralph, Castlevania SotN (in-game only), Tactics Ogre | |Example games: Adventure of Little Ralph, Castlevania SotN (in-game only), Tactics Ogre | ||
| | | | ||
|- | |- | ||
− | |PlayStation | + | |PlayStation 512x224 @59.82Hz |
− | |682. | + | |682.6 / 263 / @<u><span title="exact frequency varies between boards">10.74MHz</span></u>(NTSC) |
|512x240 | |512x240 | ||
− | |H.samplerate=682. | + | |H.samplerate=682.60 |
|Example games: Crash Bandicoot, Soul Reaver, Spyro, Tekken | |Example games: Crash Bandicoot, Soul Reaver, Spyro, Tekken | ||
| | | | ||
|- | |- | ||
− | |PS2 | + | |PlayStation 600x480i @60Hz |
− | |686.4 / | + | |910 / 525 / @<u><span title="((1820 ÷ 910) ÷ 2) × 14.31818MHz">14.32MHz</span></u>(NTSC) |
− | | | + | |480i / 576i |
− | |H.active=512, H.samplerate=686, H.synclen=44, H.backporch=84 | + | |Video LPF = 9MHz, H.samplerate=910, H. synclen = 62, H. backporch = 98, H. active = 600 |
− | |Example games: Megaman X7, Castlevania Lament of Innocence | + | |Example game: Tobal 1 and 2 (stretched from 512x480i to 600x480i) |
+ | | | ||
+ | |- | ||
+ | |PS2 512x224 @59.94Hz | ||
+ | |686.4 / 525 / @10.8MHz(NTSC) | ||
+ | |480i / 576i | ||
+ | |H.active=512, H.samplerate=686.40, H.synclen=44, H.backporch=84 | ||
+ | |Example games: Megaman X7, Castlevania Lament of Innocence | ||
| | | | ||
|- | |- | ||
− | |PS2 | + | |PS2 640x200 @59.94Hz |
− | |858 / | + | |858 / 525 / @<u><span title="exact frequency varies between boards">6.71MHz</span></u>(NTSC) @<u><span title="exact frequency varies between boards">6.65MHz</span></u>(PAL) |
− | | | + | |480i / 576i |
|H.active=640, H.synclen=44, H.backporch=116 | |H.active=640, H.synclen=44, H.backporch=116 | ||
− | |Example games: GTA III, Crash Bandicoot Wrath of Cortex | + | |Example games: GTA III, Crash Bandicoot Wrath of Cortex |
| | | | ||
|- | |- | ||
Line 95: | Line 102: | ||
| | | | ||
|- | |- | ||
− | |Saturn | + | |Saturn 320x240 @60Hz |
− | |427 / 263 / @<u><span title="(( | + | |427 / 263 / @<u><span title="((1708 ÷ 910) ÷ 4) × 14.31818MHz">6.72MHz</span></u>(NTSC) [http://dreamjam.co.uk/emuviews/sat/sattech.txt][https://i.imgur.com/AaNN2Zh.png] |
|320x240 | |320x240 | ||
|Video LPF = 9MHz, H.samplerate=427 | |Video LPF = 9MHz, H.samplerate=427 | ||
Line 102: | Line 109: | ||
| | | | ||
|- | |- | ||
− | |Saturn | + | |Saturn 352×240 @60Hz |
− | | | + | |455 / 263 / @<u><span title="((1820 ÷ 910) ÷ 4) × 14.31818MHz">7.16MHz</span></u>(NTSC) |
|320x240 | |320x240 | ||
|Video LPF = 9MHz, H.samplerate=455, H. active = 352 | |Video LPF = 9MHz, H.samplerate=455, H. active = 352 | ||
Line 110: | Line 117: | ||
|- | |- | ||
|Saturn 704x480i @60Hz | |Saturn 704x480i @60Hz | ||
− | | | + | |910 / 525 / @<u><span title="((1820 ÷ 910) ÷ 2) × 14.31818MHz">14.32MHz</span></u>(NTSC) |
− | |480i | + | |480i / 576i |
|Video LPF = 9MHz, H.samplerate=910, H. synclen = 62, H. backporch = 98, H. active = 704 | |Video LPF = 9MHz, H.samplerate=910, H. synclen = 62, H. backporch = 98, H. active = 704 | ||
|Example game: Virtua Fighter 2 (stage areas) | |Example game: Virtua Fighter 2 (stage areas) | ||
Line 123: | Line 130: | ||
| | | | ||
|- | |- | ||
− | |DC VGA | + | |DC VGA 720x480 @60Hz |
|858 / 525 / @27MHz [http://mc.pp.se/dc/pvr.html] | |858 / 525 / @27MHz [http://mc.pp.se/dc/pvr.html] | ||
|480p | |480p | ||
− | |H active= | + | |H active=720 |
− | | | + | |Outputs games at 640x480 in a frame of 720x480. |
| | | | ||
|- | |- | ||
|GameCube 480i @59.94Hz | |GameCube 480i @59.94Hz | ||
|858 / 525 / @13.5MHz | |858 / 525 / @13.5MHz | ||
− | |480i | + | |480i / 576i |
|H.active=720 | |H.active=720 | ||
| | | | ||
Line 139: | Line 146: | ||
|GameCube 480p @59.94Hz | |GameCube 480p @59.94Hz | ||
|858 / 525 / @27MHz | |858 / 525 / @27MHz | ||
− | |480p | + | |480p / 576p |
|H.active=720 | |H.active=720 | ||
|Only available on GameCube models with a Digital AV Out port. Requires proprietary RCA component or D-terminal cables, or a third-party adapter. Supported by many NTSC games, but no PAL games. | |Only available on GameCube models with a Digital AV Out port. Requires proprietary RCA component or D-terminal cables, or a third-party adapter. Supported by many NTSC games, but no PAL games. | ||
Line 146: | Line 153: | ||
|Wii 480i @59.94Hz | |Wii 480i @59.94Hz | ||
|858 / 525 / @13.5MHz | |858 / 525 / @13.5MHz | ||
− | |480i | + | |480i / 576i |
|H.samplerate=858 for both 4:3 and 16:9 modes, H.active=640 and 720 in 4:3 mode and 854 in 16:9 mode | |H.samplerate=858 for both 4:3 and 16:9 modes, H.active=640 and 720 in 4:3 mode and 854 in 16:9 mode | ||
| | | | ||
Line 153: | Line 160: | ||
|Wii 480p @59.94Hz | |Wii 480p @59.94Hz | ||
|858 / 525 / @27MHz | |858 / 525 / @27MHz | ||
− | |480p | + | |480p / 576p |
|H.samplerate=858 for both 4:3 and 16:9 modes, H.active=640 and 720 in 4:3 mode and 854 in 16:9 mode | |H.samplerate=858 for both 4:3 and 16:9 modes, H.active=640 and 720 in 4:3 mode and 854 in 16:9 mode | ||
|Requires RCA component or D-terminal cables. Supported by most, but not all games. | |Requires RCA component or D-terminal cables. Supported by most, but not all games. | ||
Line 180: | Line 187: | ||
|- | |- | ||
|PC-8801 640x400 @55.39z | |PC-8801 640x400 @55.39z | ||
− | |848 / | + | |848 / 525 |
− | | | + | |480p |
|H.samplerate=848, H.synclen=64, H.backporch=80, V.backporch=38 | |H.samplerate=848, H.synclen=64, H.backporch=80, V.backporch=38 | ||
|Allow upsample2x might reduce noise | |Allow upsample2x might reduce noise | ||
Line 187: | Line 194: | ||
|- | |- | ||
|PC-98 640x400 @56.4Hz | |PC-98 640x400 @56.4Hz | ||
− | |848 / | + | |848 / 525 / @21.0526MHz |
− | | | + | |480p |
|H.samplerate=848, H.synclen=64, H.backporch=80, V.backporch=32 | |H.samplerate=848, H.synclen=64, H.backporch=80, V.backporch=32 | ||
| | | | ||
Line 242: | Line 249: | ||
| 6x* | | 6x* | ||
| 6x(5x)* | | 6x(5x)* | ||
+ | |- | ||
+ | ! scope="row"| Line6x | ||
+ | | 4x | ||
+ | | 6x | ||
+ | | 6x | ||
+ | | 8x | ||
+ | | 8x(6x) | ||
|} | |} | ||
Latest revision as of 13:26, 20 June 2024
The advanced timing options on the OSSC allow for fine control over how the output image is generated and how the analogue signal is sampled. In some cases it is possible to adjust these values to perfectly match the incoming analogue signal from a console. This results in a very sharp image (possibly even too sharp for many people's tastes).
The table below contains some preliminary timings for popular consoles, it should be considered a work in progress, do not be surprised if further fine tuning is required. You will almost always be required to fine tune the sampling phase after making these adjustments.
Console / mode | Dots per scanline / no. scanlines / @dotclk | OSSC base mode | Modified parameters | Notes | PC modeline |
---|---|---|---|---|---|
NES 256x240 @60.10Hz | 341* / 262 / @5.37MHz(NTSC) [1][2][3] | 256x240 | To reduce jitter in couple topmost lines, try disabling ""Allow TVP HPLL2x" and/or using mask. * one scanline is typically 1 dot shorter on every other frame |
Modeline "ossc_nes_1280x720_60.08" 80.55 1280 1385 1510 1705 720 729 738 786 -hsync -vsync | |
SNES 256x240/224 @60.10Hz | 341* / 262 / @5.37MHz(NTSC) @5.32MHz(PAL) [4] | 256x240 | * one scanline is typically 1 dot shorter on every other frame | Modeline "ossc_snes_1280x720_60.08" 80.55 1280 1385 1510 1705 720 729 738 786 -hsync -vsync | |
Mega Drive 320x224 @59.92Hz | 320×8 + 86×10 (?) / 262 / @53.693175MHz(NTSC) @53.203425MHz(PAL) | 320x240 | H.samplerate=427.50 | Video tutorial | |
Mega Drive 256x224 @59.92Hz | 342 / 262 / @5.37MHz(NTSC) @5.32MHz(PAL) [5][6] | 256x240 | H.samplerate=342 | Video tutorial | |
N64 320x237 @59.82Hz | 773.5 / 263 / @12.17MHz(NTSC) @12.41MHz(PAL) [7][8] | 320x240 | H.samplerate=386.75, H.synclen=22, H.backporch=36 | Every other visible dot (of 640) is interpolated | |
PlayStation 320x224 @59.82Hz | 426.625 / 263 / @6.71MHz(NTSC) @6.65MHz(PAL) [9] [10] | 320x240 | H.samplerate=426.60 | Example games: Chrono Cross, Final Fantasy VII & VIII, Klonoa | |
PlayStation 384x224 @59.82Hz | 487.571 / 263 / @7.67MHz(NTSC) | 384x240 | H.samplerate=487.55, H.synclen=63, H.backporch=18 | Example games: Ape Escape, Grandia, Oddworld, Tomb Raider 1 & 2 | |
PlayStation 256x224 @59.82Hz | 341.30 / 263 / @5.369MHz(NTSC) | 256x240 | H.samplerate=341.30 | Example games: Adventure of Little Ralph, Castlevania SotN (in-game only), Tactics Ogre | |
PlayStation 512x224 @59.82Hz | 682.6 / 263 / @10.74MHz(NTSC) | 512x240 | H.samplerate=682.60 | Example games: Crash Bandicoot, Soul Reaver, Spyro, Tekken | |
PlayStation 600x480i @60Hz | 910 / 525 / @14.32MHz(NTSC) | 480i / 576i | Video LPF = 9MHz, H.samplerate=910, H. synclen = 62, H. backporch = 98, H. active = 600 | Example game: Tobal 1 and 2 (stretched from 512x480i to 600x480i) | |
PS2 512x224 @59.94Hz | 686.4 / 525 / @10.8MHz(NTSC) | 480i / 576i | H.active=512, H.samplerate=686.40, H.synclen=44, H.backporch=84 | Example games: Megaman X7, Castlevania Lament of Innocence | |
PS2 640x200 @59.94Hz | 858 / 525 / @6.71MHz(NTSC) @6.65MHz(PAL) | 480i / 576i | H.active=640, H.synclen=44, H.backporch=116 | Example games: GTA III, Crash Bandicoot Wrath of Cortex | |
PS2 256x240 @59.94Hz | 858 / 263 / @6.30MHz | 256x240 | H.samplerate=858 | Example games: FCEU, SNESticle and some emulators | |
Saturn 320x240 @60Hz | 427 / 263 / @6.72MHz(NTSC) [11][12] | 320x240 | Video LPF = 9MHz, H.samplerate=427 | Example game: World Heroes Perfect (has in-game letterboxing) | |
Saturn 352×240 @60Hz | 455 / 263 / @7.16MHz(NTSC) | 320x240 | Video LPF = 9MHz, H.samplerate=455, H. active = 352 | Example game: All of the various Capcom arcade fighting game ports | |
Saturn 704x480i @60Hz | 910 / 525 / @14.32MHz(NTSC) | 480i / 576i | Video LPF = 9MHz, H.samplerate=910, H. synclen = 62, H. backporch = 98, H. active = 704 | Example game: Virtua Fighter 2 (stage areas) | |
Neo-Geo MVS 320x240 @59.19Hz | 384 / 264 / @6.00MHz [13] | 320x240 | H.samplerate=384, H.backporch=25 | ||
DC VGA 720x480 @60Hz | 858 / 525 / @27MHz [14] | 480p | H active=720 | Outputs games at 640x480 in a frame of 720x480. | |
GameCube 480i @59.94Hz | 858 / 525 / @13.5MHz | 480i / 576i | H.active=720 | ||
GameCube 480p @59.94Hz | 858 / 525 / @27MHz | 480p / 576p | H.active=720 | Only available on GameCube models with a Digital AV Out port. Requires proprietary RCA component or D-terminal cables, or a third-party adapter. Supported by many NTSC games, but no PAL games. | |
Wii 480i @59.94Hz | 858 / 525 / @13.5MHz | 480i / 576i | H.samplerate=858 for both 4:3 and 16:9 modes, H.active=640 and 720 in 4:3 mode and 854 in 16:9 mode | ||
Wii 480p @59.94Hz | 858 / 525 / @27MHz | 480p / 576p | H.samplerate=858 for both 4:3 and 16:9 modes, H.active=640 and 720 in 4:3 mode and 854 in 16:9 mode | Requires RCA component or D-terminal cables. Supported by most, but not all games. | |
Wii 320x240 @59.82Hz | 429.05 / 263 / @6.75MHz | 320x240 | H.samplerate=429.05 | Example Games: Many Virtual Console games (only if output resolution is set to in 480i in System Settings) | |
GBI ULL 480p @59.72Hz | 866 / 522 / @27MHz ? | 480p | H samplerate=866 ? | ||
CPS2 384x224 @59.64Hz | 512 / 262 / @8MHz | 384x240 | |||
PC-8801 640x400 @55.39z | 848 / 525 | 480p | H.samplerate=848, H.synclen=64, H.backporch=80, V.backporch=38 | Allow upsample2x might reduce noise | |
PC-98 640x400 @56.4Hz | 848 / 525 / @21.0526MHz | 480p | H.samplerate=848, H.synclen=64, H.backporch=80, V.backporch=32 | ||
PSP | See the dedicated page. |
Horizontal multiplication factors
Frame width is multiplied by an integer factor defined below while picture area is multiplied by the value in parenthesis (if different) to maintain correct aspect ratio. Vertical multiplication factor is defined directly by line multiplication mode. For example, consider 320x240 in line3x mode. Frame size is multiplied by 4 in horizontal direction, and by 3 in vertical direction to generate a frame of 1280x720 which is ideal for 720p output. However, picture area is only multiplied by 3 in horizontal direction so that effective area (960x720) maintains 4:3 ratio of the source.
512x240 | 384x240 | 320x240 | 256x240 (4:3) | 256x240 (8:7) | |
---|---|---|---|---|---|
Line2x | 2x | 2x | 2x | 3x | 3x(2x) |
Line3x | 2x | 3x | 4x(3x) | 5x(4x) | 5x(3x) |
Line4x | 2x | 3x | 4x | 5x | 5x(4x) |
Line5x | 3x* | 4x* | 5x* | 6x* | 6x(5x)* |
Line6x | 4x | 6x | 6x | 8x | 8x(6x) |
- With Line5x, horizontal active and mask are adjusted internally so that frame width of 1600 or 1920 (depending on "Line5x format") is always generated. In 1920x1080 format, vertical active and backporch are also internally adjusted (-24 and +12) to generate suitable frame height.
The FirebrandX optimal timing method
Community member FirebrandX has produced a useful YouTube video tutorial on how to discover optimal video timings. This video can be viewed here.