Difference between revisions of "Optimal timings"
(added link to Firebrandx video) |
(add additional Playstation 1 modes) |
||
Line 46: | Line 46: | ||
| | | | ||
|- | |- | ||
− | |PSX 320x240 @ | + | |PSX 320x240 @59.82Hz |
|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] | |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.active=320, H.samplerate=427, H.synclen=76, H.backporch=63 |
− | | | + | |Example games: Chrono Cross |
− | | | + | | |
+ | |- | ||
+ | |PSX 384x240 @59.82Hz | ||
+ | |487.5 / 263 / @<u><span title="exact frequency varies between boards">7.67MHz</span></u>(NTSC) | ||
+ | |320x240 | ||
+ | |H.active=384, H.samplerate=487, H.synclen=63, H.backporch=18 | ||
+ | |Example games: Ape Escape, Castlevania SotN (menus only) | ||
+ | | | ||
+ | |- | ||
+ | |PSX 256x240 @59.82Hz | ||
+ | |341.25 / 263 / @<u><span title="exact frequency varies between boards">5.369MHz</span></u>(NTSC) | ||
+ | |256x240 | ||
+ | |H.active=256, H.samplerate=341, H.synclen=26, H.backporch=39 | ||
+ | |Example games: Adventure of Little Ralph, Castlevania SotN (in-game only) | ||
+ | | | ||
+ | |- | ||
+ | |PSX 512x240 @59.82Hz | ||
+ | |682.5 / 263 / @<u><span title="exact frequency varies between boards">10.74MHz</span></u>(NTSC) | ||
+ | |240p | ||
+ | |H.active=512, H.samplerate=683, H.synclen=10, H.backporch=117 | ||
+ | |Example games: Crash Bandicoot (resolution of the dithering) | ||
+ | | | ||
|- | |- | ||
|Saturn 320x240 @60Hz | |Saturn 320x240 @60Hz |
Revision as of 23:28, 30 December 2017
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.
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 256x239/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 @60Hz | 320×8 + 86×10 (?) / 262 / @53.693175MHz(NTSC) @53.203425MHz(PAL) | 320x240 | H.samplerate=428 (?) | ||
Mega Drive 256x224 @60Hz | 342 / 262 / @5.37MHz(NTSC) @5.32MHz(PAL) [5][6] | 256x240 | H.samplerate=342 | ||
N64 320x240 @60Hz | 773.25 (?) / 262 / @12.17MHz(NTSC) @12.41MHz(PAL) [7][8] | 320x240 | H.samplerate=387, H.synclen=22, H.backporch=36 | Every other visible dot (of 640) is interpolated | |
PSX 320x240 @59.82Hz | 426.625 (?) / 263 / @6.71MHz(NTSC) @6.65MHz(PAL) [9] [10] | 320x240 | H.active=320, H.samplerate=427, H.synclen=76, H.backporch=63 | Example games: Chrono Cross | |
PSX 384x240 @59.82Hz | 487.5 / 263 / @7.67MHz(NTSC) | 320x240 | H.active=384, H.samplerate=487, H.synclen=63, H.backporch=18 | Example games: Ape Escape, Castlevania SotN (menus only) | |
PSX 256x240 @59.82Hz | 341.25 / 263 / @5.369MHz(NTSC) | 256x240 | H.active=256, H.samplerate=341, H.synclen=26, H.backporch=39 | Example games: Adventure of Little Ralph, Castlevania SotN (in-game only) | |
PSX 512x240 @59.82Hz | 682.5 / 263 / @10.74MHz(NTSC) | 240p | H.active=512, H.samplerate=683, H.synclen=10, H.backporch=117 | Example games: Crash Bandicoot (resolution of the dithering) | |
Saturn 320x240 @60Hz | 427 / 263 / @6.71MHz(NTSC) [11][] | 320x240 | H.samplerate=427 | ||
Neo-Geo MVS 320x240 @59.19Hz | 384 / 264 / @6.00MHz [12] | 320x240 | H.samplerate=384, H.backporch=25 | ||
DC VGA @60Hz | 858 / 525 / @27MHz [13] | 480p | H active=640 | ||
GBI ULL 480p @59.72Hz | 866 / 522 / @27MHz ? | 480p | H samplerate=866 ? | ||
CPS2 384x224 @59.64Hz | 512 / 262 / @8MHz | 320x240 | H.samplerate=512, H.active=384, H.backporch=66 | ||
PC-98 640x400 @56.4Hz | 848 / 440 / @21.0526MHz | 640x384 | H.samplerate=848, H.backporch=80, H.synclen=64,, V.active=400, V.backporch=25 | ||
Seibu SPI | ? / 293 (?) | ? |
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.
320x240 | 256x240 (4:3) | 256x240 (8:7) | |
---|---|---|---|
Line2x | 2x | 3x | 3x(2x) |
Line3x | 4x(3x) | 5x(4x) | 5x(3x) |
Line4x | 4x | 5x | 5x(4x) |
Line5x | 5x* | 6x* | 6x(5x)* |
- 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.