400p mode for retro PC

Viewing 15 posts - 1 through 15 (of 20 total)
  • Author
  • #19529

    320×200 (doubled to 640×400) mode is the default for 99.99% of all DOS games and BIOS screens (to this day) and it will be great to have a 400p mode in the OSSC for retro PC gamers like me and thousands others.
    Currently the OSSC recognizes a 640×400 70Hz VGA signal from a 386/486/Pentium as 384p which is not correct but still fully functional.
    It was by sheer luck (or huge tolerance) the OSSC recognized VGA signal as 384p.

    I already have a post about this topic but not as a feature request.

    OSSC + Pentium 233 MMX (VGA)



    I second this request; also, as mentioned in the linked topic, a 720×400 mode would be nice.


    Could this be coupled with an option to stick this in a 640×480 or DTV 720×480 frame for use on pickier monitors and TVs?


    It is very unlikely that a TV will receive a 70Hz signal at any resolution but 640×400 or 720×400, unless its scaler is more like a monitor than a TV with plenty of VESA modes.

    To stick 640×400 in a 640×480 frame, the output mode for 400p should be in passthrough, but the image is blurry like plugging the PC straight to the VGA port on the LCD monitor.
    We want Line2x for crisp and clear DOS image on an LCD.

    In line2x mode I had to change the active vertical resolution to 480 from 384 so my monitor reads it as 1280×864 70Hz, only then the 4:3 option is selectable in the monitor, but on 1280×720 and 1280×800 it is always Wide.
    As you can understand the current implementation of 384p is definitely not designed for a DOS PCs but manageable with advanced tweaking.

    Ideally, 640/720 x400 frame in 640×480 doubled to 1280×960 resolution would be great, but 960 active requires at least 1000 lines total vertical resolution which 449p (400p) does not provide.


    Yes, 640×400 could be added on the mode list. The parameters on this page look correct (mainly: 449 lines, 800 dots per line) so I’ll use those. Separating it from 720×400 would be hard as both are 449p, but it should quite easy to adapt from 640×400 parameters (h_total -> 900, h_active -> 720) e.g. using a different profile when necessary. I’d assume most people prefer using DOS PC with a monitor, so there’s better chance of 70Hz compatibility than when using a TV.


    Thanks for your consideration!


    Thanks marqs!

    Line2x and Ppsample2x should always be enabled.

    These settings work well and ‘to-spec’ for 720×400:
    H.samplerate 900
    H.synclen 96
    H.backporch 57
    H.active 720
    V.synclen 2
    V.backporch 34
    V.active 400

    Default for 400p should be passthrough to let the monitor handle the signal as if it was through VGA.
    But most LCD monitors will not display this mode as 4:3.
    Adjust H.backporch to center the image.

    For 4:3 image try this setting:

    I tried to aim at 1066×800 which is perfect 4:3.
    I fiddled with the Advanced setting till I got a very nice 4:3 image in 1066×800 resolution on both my monitors.

    H. Samplerate : 700 (this gives correct sampling [no “waves”]).
    H. Synclength : 64
    H. backporch : 52
    H. Active : 570
    V. Synclength : 2
    V. Backporch : 34
    V. Active : 400

    It is important that Upsample2x is On to smooth the image.
    The second mode is preferred for Line2x+Upsample2x in 720×400 and maintains 4:3 aspect ratio.
    Of course it will require further tweaking of the advanced setting as not all old school VGA/SVGA cards are the same.


    Like with 240p resolutions, it will be useful to separate Advanced modes for passthrough and Line2x of 400p, as currently both passthrough and line2x for 384p are on single advanced setting list.


    In Output Options the 384p proccssing setting controls 400p too, can you please display “384p/400p proc” so people know it also controls the standard 720×400 DOS mode?
    Also, can you please add a Line3x in this mode for 1200p output with 720×400 input, for sharper image?

    Maybe a separate 400p would be useful since since PC CRT are becoming rarer and more people using the OSSC for retro computers but no clear 400p settings in the menu?

    BTW, advanced timing should be renamed from 640×400 to 720×400 (70Hz), since it is indeed the default DOS resolution, and that’s what my Pentium outputs.

    Here is what I found makes a pixel perfect image with my two Pentiums (different video cards):
    H.Samplerate: 900
    H.Synclength 96
    H.backporch 57
    H.Active 728
    V.Synclength 2
    V.backporch 34
    V.Active 400

    900 Samplerate is the important part, while 730 active resolution is to accommodate slight horizontal shift between 720×400 (80×25 text mode) and 320×200 (most games) which the video cards output as the same resolution and CRT monitors and OSSC treat as the same resolution.
    Then just tweak the backporch till both modes do not clip of the edge of the screen.

    I think the OSSC needs some more love towards the 400p computer mode.

    Just to add, Line2x is not enough Samplerate to produce correct pixel geometry and 4:3 aspect ratio.
    I think Line3x is important to have in 400p to increase samplerate for less distorted pixels, and all 1080p PC monitors support 1200p so that should not be a problem.


    384p/400p proc name should be OK although it doesn’t indicate the fact that 360p GBI resolutions are under that group as well. As for 640×400 vs 720×400, to my understanding neither is a ‘standard’ but both are used in DOS text modes and games. Not sure if some video cards use latter’s timings for both resolutions, but I doubt there’s a single modeline/samplerate that covers all DOS 200p doublescanned or 400p modes across all systems:

    VGA Timings
    VGA Timings 2

    I have to check if resulting pixel clock of 1600×400 mode (samplerate around 2000?) would be suitable for Line3x.


    The estimated 2000 samplerate would have to be adjusted to produce 4:3 image in the 1600×1200 active area, can use the BIOS screen for that.
    The higher sampling rate will certainly help the native 720 horizontal resolution pixels look less deformed than they are in Line2x.
    Thank you very much for looking into that Marqs.

    EDIT: Yes, you are absolutely right, I take my words back.
    My video cards produce different pixel clocks for 640×400 (800 sampling) and 720×400 (900 sampling).
    All games that I tried output 640×400.


    Since both 640×400@70Hz and 720×400@70Hz have the same line count, it’d be probably good to have a “400p in sampler” option just like with 480p. That would enable quick switch between the 2 sampling presets.


    Automatically switch between the two samplingrates is a good idea for passthrough and Line2x, but both will not be displayed in 4:3 on any 16:9 monitor (most have only “aspect” and “fill” settings), thus not of interest for gaming unless the display has “4:3” setting which is rare, or is a 4:3 LCD monitor (also rare), for these it will be great or for capture cards that can rescale.
    * Does that mean 640×400 and 720×400 will have separate advanced timing settings like with 640×480 and 480p?
    Line3x will have greater sampling rate and the different between 720 and 640 will not be that visible, so “400p in sampler” can be set to manual to either 640 or 720 to not lose sync when the machine switches between 640 and 720, so advanced timing 1600×400 for Line3x can be shared by both, and probably the only mode to produce adequate 4:3 image on 16:9 monitors that do not have a “4:3” setting but only “aspect” setting which is most of monitors.


    There would be effectively 3 different presets for 400p:

    640×400: passthru and line2x (active when 400p sampler set to 640×400@70Hz)
    720×400: passthru and line2x (active when 400p sampler set to 720×400@70Hz)
    1600×400: line3x only

    I’m afraid the 3rd one is not going to be operational at samplerate of 2000, though, since the resulting pixel clock would be around 189MHz which is more than 162MHz recommendation of HDMI TX chip.


    640/800 or 720/900 = 0.8, and 1600/0.8 = 2000, indeed.
    Maybe we can push 2000 even if it is beyond recommended specs?

    I can add that to create 4:3 image in line2x I need exactly 667 sampling rate.
    449/667 = 0.673 and 1347/0.673 = 2000,, hmm there is no avoiding using 2000 sampling rate in line3x to create 4:3 image.
    What can we do?


    Since both 640×400@70Hz and 720×400@70Hz have the same line count, it’d be probably good to have a “400p in sampler” option just like with 480p. That would enable quick switch between the 2 sampling presets.

    YES PLEASE!!!!

Viewing 15 posts - 1 through 15 (of 20 total)
  • You must be logged in to reply to this topic.