The video driver used in NeoYume supports many different output formats with different sub-modes.
There are 6 variables to control this:
VIDEO_MODEselects the broad output typeVIDEO_SUBMODEselects a sub-variant. Can beSUBMODE_AUTOto select the default.ANALOG_BASEPINdetermines which pins the analog output is sent to (this must be a multiple of 4)VSYNC_PINdetermines where VSync goes (for modes that have it)DIGITAL_BASEPINdetermines which pins the digital output is sent to (this must be a multiple of 8)DIGITAL_REVERSEDsets if digital TMDS signalling should use reverse pin order
Digital HDMI output with embedded audio. 8 TMDS signals are sent to DIGITAL_BASEPIN.
HDMI audio packet generation is semi-experimental, please report if it works or doesn't work for you.
Supported submodes are:
SUBMODE_TMDS_640x480standard 4:3 signal (default)SUBMODE_TMDS_768x480extra horizontal padding for 16:10 monitorsSUBMODE_TMDS_800x480extra horizontal padding for certain LCD panelsSUBMODE_TMDS_854x480extra horizontal padding for 16:9 monitors
(Older versions of NeoYume used to default to 800x480)
Same as MODE_HDMI, but using plain DVI signalling (no data islands or guard bands)
Same as the the above, but with simultaneous analog output. The analog timing is off-spec, so this is not very useful.
Analog RGB output with separate sync signals. HSync, R, G and B are sent, in that order, to four pins at ANALOG_BASEPIN. VSync is sent to VSYNC_PIN.
Supported submodes are SUBMODE_1X through SUBMODE_3X, corrosponding to different scaling settings. The default SUBMODE_2X results in a standard 640x480 signal.
Analog RGB output with composite sync. CSync, R, G and B are sent, in that order, to four pins at ANALOG_BASEPIN.
Everything else is the same as MODE_VGA
Analog RGB output with Sync-On-Green. R, G and B are sent, in that order, to three pins at ANALOG_BASEPIN + 1.
Everything else is the same as MODE_VGA
Analog YPbPr output. Pr, Y and Pb are sent, in that order, to three pins at ANALOG_BASEPIN + 1.
This supports the same scaling modes as MODE_VGA, but additionally allows overriding the color space with SUBMODE_FORCE_REC601 and SUBMODE_FORCE_REC709. By default Rec. 601 is used for 1X and 2X, Rec. 709 above that.
Analog composite video. This can be sent to any ANALOG_BASEPIN (does not need to be a multiple of 4).
Supports SUBMODE_NTSC (default) and SUBMODE_PAL. The latter is infact PAL60.
Analog S-Video. Luma and Chroma are sent, in that order, to two pins at ANALOG_BASEPIN.
Everything else is the same as MODE_COMPOSITE
Analog S-Video and composite simultaneously. Luma, Chroma and Composite are sent, in that order, to three pins at ANALOG_BASEPIN.
Everything else is the same as MODE_COMPOSITE
6-bit digital output for ILI9342-based LCD screen.
TODO