From c5759cfa81ac6970fdbf3778217e129b19afa483 Mon Sep 17 00:00:00 2001 From: Ingo Korb Date: Sat, 16 Oct 2021 19:26:26 +0200 Subject: [PATCH] Update documentation for GCVideo-DVI 3.1 --- Firmware/README.md | 122 +++++++++++++++++++++--------------- Firmware/doc/about.png | Bin 1032 -> 3707 bytes Firmware/doc/advanced.png | Bin 1543 -> 4876 bytes Firmware/doc/allmodes.png | Bin 574 -> 2021 bytes Firmware/doc/mainmenu.png | Bin 2342 -> 7494 bytes Firmware/doc/osd.png | Bin 839 -> 3037 bytes Firmware/doc/output.png | Bin 1330 -> 4113 bytes Firmware/doc/picture.png | Bin 978 -> 3164 bytes Firmware/doc/scanlines.png | Bin 1232 -> 4096 bytes Firmware/doc/singlemode.png | Bin 1108 -> 3712 bytes Firmware/screen_allmodes.c | 2 +- 11 files changed, 72 insertions(+), 52 deletions(-) diff --git a/Firmware/README.md b/Firmware/README.md index 9e01832..6036307 100644 --- a/Firmware/README.md +++ b/Firmware/README.md @@ -49,7 +49,9 @@ brightness/contrast/saturation settings in the picture settings menu. The on-screen display only checks the controller in a single port, usually port 1. It has only been tested with a genuine Nintendo controller and a Hama clone pad. I have no idea what will happen if you connect one of the more -exotic controllers, for example a Bongo controller. +exotic controllers, for example a Bongo controller. On a Wii, it is recommended +to use an IR remote instead of a Gamecube controller as it has been observed that +the system menu might not enable the controller port if it was empty during boot. To activate the OSD, hold the L, R, X and Y buttons down until the menu appears - this should take about one second. If you also hold @@ -145,11 +147,9 @@ stored, make sure to use the "Store settings" menu item. The OSD has one additional function outside of the main menu: When the resolution of the video signal from the Gamecube changes, an information popup shows the new information in the top right corner for five seconds. -This popup can be disabled in the "OSD settings..." submenu. +This popup can be disabled in the "OSD Settings..." submenu. -### Scanline settings ### - -![Scanline settings menu](doc/scanlines.png) +### Scanline Settings ### GCVideo can optionally darken parts of the image to simulate the appearance of scanlines on a CRT display. To allow more flexibility, there are three @@ -162,19 +162,21 @@ algorithm chooses the factor based on the luminance of the original pixel that is processed, so a blooming-like result can be achieved by weakening the scanline effect in bright parts of the picture. +![Scanline Settings menu](doc/scanlines.png) + The first line in the menu selects which scanline profile is changed using the settings below it. If the selected profile is the same one that is used for the current mode, it is marked with a * on the right side and all changes will be visible immediately. -The "Full custom" option is meant for people who want to have extremely +The "Full Custom" option is meant for people who want to have extremely fine-grained control over their scanline profiles. When it is off, the appearance of the scanlines are controlled only by the "Brightness" and "Hybrid factor" options below. When "Full custom" is on, these two entries are disabled and you can instead select an individual scanline brightness for each possible luminance value. -To simplify the explanation, let us assume that the "Hybrid factor" is set +To simplify the explanation, let us assume that the "Hybrid Factor" is set to 0.000 for now. In this case, the appearance of the scanline effect is independent of the luminance of the input pixel, so both a bright and a dark input pixel are darkened by the same factor. This factor is determined by @@ -183,7 +185,7 @@ of 0 will turn every affected pixel to black and a factor of 1.000 will leave it as it is, effectively disabling the scanline effect. Factors between these limits darken the pixels proportionally. -The "Hybrid factor" menu entry ranges from 0.000 to 1.992 and determines how +The "Hybrid Factor" menu entry ranges from 0.000 to 1.992 and determines how much the scanline effect is weakened for bright pixels in the image. As stated above, at 0.000 the hybrid factor is disabled. When set to 0.5, the strength of the scanline effect is reduced by half for the brightest pixels and it @@ -196,17 +198,17 @@ The hybrid factor implementation is inspired/adapted/stolen-with-permission from the hybrid scanlines of the OSSC by Marqs and borti, but the image may look slightly different due to implementation differences. -The "Luminance" menu item is always active independent of the "Full custom" +The "Luminance" menu item is always active independent of the "Full Custom" option. Its value can range from 16 to 235 and determines which factor is -accessed/shown in the "Applied factor" menu item. With "Full custom" set to +accessed/shown in the "Applied Factor" menu item. With "Full Custom" set to off, this can be used to check the table of scanline strengths that is -calculated by the "Brightness" and "Hybrid factor" menu options. +calculated by the "Brightness" and "Hybrid Factor" menu options. -When "Full custom" is set to On, the last menu item "Applied factor" becomes +When "Full Custom" is set to On, the last menu item "Applied Factor" becomes available. Together with the "Luminance" menu item, you can edit every single entry in the strength table that GCVideo uses to implement the scanline effect. The value here works the same as the "Brightness" value when "Hybrid -factor" is set to 0.000, but it only affects pixels that have the luminance +Factor" is set to 0.000, but it only affects pixels that have the luminance value set in the "Luminance" menu item. Even though you can only see a single value in this menu at a time, there is a full table with entries for all luminances from 16-235 that you can edit here one entry at a time. @@ -214,17 +216,19 @@ Of course it would be much better to edit a table like this in graphical form, but unfortunately this would require too many FPGA resources to implement in GCVideo. -Please note that turning "Full custom" off and changing either of the -"Brightness" and "Hybrid factor" will reset the custom table back to calculated +Please note that turning "Full Custom" off and changing either of the +"Brightness" and "Hybrid Factor" will reset the custom table back to calculated values. Both fully-custom as well as normal scanline profiles can be saved -togetierh with all the other settings by selecting "Store settings" in the +togetierh with all the other settings by selecting "Store Settings" in the main menu. -### Picture settings ### +### Picture Settings ### The Picture Settings submenu has controls to change the brightness, contrast and saturation as well as the position of the picture. +![Picture Settings menu](doc/picture.png) + Each of the controls has a range from -128 to +127. When brightness, contrast and saturation are all set to 0, the picture is output exactly as produced by the console, without any modification. @@ -245,23 +249,27 @@ black or shifted tint in highly-saturated colors. If you encounter this, the recommended workaround is to use less extreme picture settings in GCVideo, prefereably neutral. -The "X position" and "Y position" settings change the position of the game +The "X Position" and "Y Position" settings change the position of the game image on screen. Althogh their range is from -128 to +127, the actual position of the image is constrained by the video signal generated by the console. For some games or software it may not be possible to shift the image at all even if you choose a non-zero setting here. This setting is also ignored for non-standard video modes. +When one of GBI's 486 line video modes is detected and "Crop 486 to 480" in +the Output Settings is enabled, you can use the "Y Position" setting to +move the 480 line window that GCVideo shows within GBI's 486-line signal. -### OSD settings ### -![OSD settings menu](doc/osd.png) +### OSD Settings ### The OSD settings menu has an option to disable the mode popup that shows for five secends whenever the console changes its output resolution as well as three settings to change the color and transparency of the OSD background. -The "BG transparency" determines how much the console's image shines through +![OSD Settings menu](doc/osd.png) + +The "BG Transparency" determines how much the console's image shines through the OSD and has a range from 0 to 255. At 0, the console's image is not visible at all through the OSD background and at 255 the console's image is fully visible, which may lead to readability issues if the image behind the @@ -276,17 +284,17 @@ As usual, the settings chosen in this menu can be stored as power-up default using the "Store settings" entry on the main menu. Additionally, you can enter the IR button configuration screen from this -menu by selecting the "IR key config..." entry. +menu by selecting the "IR Key Config..." entry. -### Output settings ### - -![Output settings menu](doc/output.png) +### Output Settings ### This menu contains various output-related settings. The defaults are chosen for maximum compatibility, not maximum convenience, so you will probably want to change some of them. -"Allow 480p mode" determines if GCVideo signals the presence of a progressive +![Output Settings menu](doc/output.png) + +"Allow 480p Mode" determines if GCVideo signals the presence of a progressive video cable to the console. If this option if turned off on a Gamecube, games will never ask you if you want progressive mode(*); if it is turned off on a Wii, the 480p mode option will not be available in the console's setting. @@ -296,6 +304,12 @@ detects the presence of a progressive mode video cable. On some hardware implementations the presence signal is always enabled, no matter what is set here. +"Crop 486 to 480" is a special option to generate a standard 480-line image +from GBI's 486-line video modes. As long as it is disabled, GBI's special +486-line modes are passed through as-is. If it is enabled and one of the +special modes is detected, the image is cropped to 480 lines, which improves +compatibility with some displays. + "RGB Limited Range" determines if GCVideo outputs a limited range ("On") or full range ("Off") RGB signal on its digital output. This option may be disabled if YCbCr output is selected in the advanced menu. Please check the @@ -303,13 +317,13 @@ glossary below for an explanation about limited- and full-range RGB signals. It defaults to full range as the default output is standard DVI, which is always full range. -"Enhanced DVI mode" chooses if the digital output transmits standard DVI ("Off") +"Enhanced DVI Mode" chooses if the digital output transmits standard DVI ("Off") or an enhanced version that contains additional metadata and audio signals, which is not compatible with strictly-conforming DVI inputs. The default for this option is Off, because it is easier to turn it on if you do not get any audio than turning it off when you do not get any picture. -When "Enhanced DVI mode" is On, the "Display as 16:9" option becomes available. +When "Enhanced DVI Mode" is On, the "Display as 16:9" option becomes available. If turned on, it tells the display that the signal should be shown in a 16:9 aspect ratio. Some displays (and scalers) respect this setting and automatically change their aspect ratio between 16:9 and 4:3 depending on the setting, some @@ -322,13 +336,13 @@ temporarily mute the console's audio without having to dial down through the full range of the volume setting. Hardware implementations that feature an additional analog video output -show a menu item "Analog output" here that is used to select the analog video +show a menu item "Analog Output" here that is used to select the analog video signal format. "YPbPr" outputs component video, "RGB" outputs RGB and "RGsB" outputs RGB with sync-on-green. Please note that certain settings -in the Advanced options menu may stop RGB/RGsB from working. +in the Advanced Options menu may stop RGB/RGsB from working. As usual, the settings chosen in this menu can be stored as power-up default -using the "Store settings" entry on the main menu. +using the "Store Settings" entry on the main menu. (*) Please note that most PAL-region Gamecube games do not offer a progressive video option at all. For NTSC-region games, you may need to hold B while the @@ -337,28 +351,28 @@ party software like [Swiss](https://github.com/emukidid/swiss-gc) can sometimes force PAL-region games to output progressive video. -### View all modes ### - -![View all modes menu](doc/allmodes.png) +### View All Modes ### As mentined before, the first four entries on the main menu screen are specific to the current video mode. Since it would be inconvenient to cycle -through all modes on the console just to set each one of them, the "View all -modes" menu lets you select which mode's settings you want to change. +through all modes on the console just to configure each one of them, the "View All +Modes" menu lets you select which mode's settings you want to change. Since it is not possible to change any of these settings in Non-Standard modes, there is no NonStd-entry in the mode menu. -![Per-mode setting](doc/singlemode.png) +![View All Modes menu](doc/allmodes.png) The per-mode menu has an entry to enable or disable the line doubler as well as settings related to scan lines. Depending on the mode, some settings may be disabled. +![Per-mode setting](doc/singlemode.png) + "Linedoubler" is available in 240p, 288p, 480i and 576i. If enabled, GCVideo outputs each video line twice, which results in an output of 480p or 576p. It is enabled by default for all modes to improve compatibility, but if your display accepts 480i/576i modes over a digital connection, it is recommened -to turn the linedoubler off for these modes because it will likely result in a +to turn the linedoubler off for these modes because that will likely result in a higher image quality. For more details about linedoubling vs. deinterlacing, check the glossary. @@ -368,28 +382,30 @@ scanlines, just set "Scanline Profile" to "Off". Otherwise, the chosen profile is applied to the image according to the settings below it. "Apply to" chooses if scanlines are applied on the odd or even video lines and -enabling "Alternating scanlines" swaps between even and odd video lines every +enabling "Alternating Scanlines" swaps between even and odd video lines every frame. By enabling the linedoubler for 480i/576i and turning on alternating scanlines at a moderate strength, you can sometimes achieve a CRT-like effect for interlaced video. As usual, the settings chosen in this menu can be stored as power-up default -using the "Store settings" entry on the main menu. +using the "Store Settings" entry on the main menu. -### Advanced settings ### +### Advanced Settings ### -The settings in this submenu are meant for advanced users only as they can +The settings in this submenu are meant for advanced users only because they can reduce audio and/or image quality or reduce compatibility of the output signal with displays. On the other hand, changing some settings here may allow you to use a display that refuses to cooperate with the default settings, although possibly at reduced output quality. +![Advanced Settings menu](doc/advanced.png) + "Chroma Interpolation" is on by default. If you turn it off, the output image will have a slight color shift as well as stronger staircasing/pixelation on color transitions. -"Fix resolution" is on by default. When it is on, GCVideo applies black borders +"Fix Resolution" is on by default. When it is on, GCVideo applies black borders to the console's image to extend it to a standard-conforming resolution. Many games output a picture at a slightly reduced resolution as the edges of the image are usually not visible on a CRT display and not rendering there saves @@ -398,7 +414,7 @@ no longer conforms to the relevant standards, which may cause issues with some displays or scalers - for example one of my TVs always scales such signals to the full panel size and disables its aspect options. -"Fix sync timing" is on by default and is only available when "Fix resolution" +"Fix Sync Timing" is on by default and is only available while "Fix Resolution" is turned on. It modifies the timing of the sync signals to be standards-compliant. There is little reason to turn this off, it is here mostly for completeness reasons. If this option is off, the X/Y position @@ -413,7 +429,7 @@ may result in a distortion at the top of the picture. The X/Y position options in the picture menu may not have an effect on the analog output of this option is set to off. -"Digital color format" is only avaiable if "Enhanced DVI mode" is enabled +"Digital Color Format" is only avaiable if "Enhanced DVI Mode" is enabled in the output settings menu. When it is available, the options are "RGB-F", "RGB-L", "YC444" and "YC422". The first two stand for full-range and limited-range RGB and have the same effect as the RGB limited range toggle @@ -426,23 +442,25 @@ result in incorrect colors on the auxiliary analog output (if available). "Report 240p as 480i" is off by default. As 240p/288p modes are less common as digital signals, some displays may not recognize their official mode numbers. Turning this option on changes the metadata that is sent when a non-linedoubled -240p/288p mode is outputted, instead of sending the correct mode numbers +240p/288p mode is displayed: Instead of sending the correct mode numbers, GCVideo uses the ones for 480i/576i instead. I'm not sure if this useful in practice - it was an attempt to get one of my displays to accept metadata in 240p mode, but it was not successful. -"Sample rate hack" is off by default and only relevant if the console is a -Gamecube or a Wii in Gamecube mode. Due to an off-by-one bug, the audio sample +"Sample Rate Hack" is off by default and only relevant if the console is a +Gamecube or a Wii in Gamecube mode. Due to an off-by-one bug in the console's +hardware, the audio sample rate of a Gamecube is not a standard 48.000Hz rate, but instead 48.042Hz. This is still (barely) within the official tolerance for SPDIF, but there have been reports of audio/video drift after longer times which may be caused by this difference. If you turn this option on, the output sample rate is forced to be exactly 48.000Hz by occasionally dropping a sample, which introduces slight fuzzing or crackling artifacts which may or may not be -audible depending on the sound that is playing. +audible depending on the sound that is playing. If you have turned this +option on, please do not file any bugs about distorted audio. As usual, the settings chosen in this menu can be stored as power-up default -using the "Store settings" entry on the main menu. +using the "Store Settings" entry on the main menu. ### About ### @@ -450,11 +468,13 @@ using the "Store settings" entry on the main menu. The about screen shows the firmware version, current console mode (on Wii) and has an option to boot into the firmware update tool, which is described below. +![About screen](doc/about.png) + ## Updating ## GCVideo includes a tool for flashing updates that can be accessed -either by choosing the "Update firmware..." option in the About menu +either by choosing the "Update Firmware..." option in the About menu or by holding the IR button while turning on the console. The update tool will also be automatically started when GCVideo detects that the main firmware is corrupted or missing. diff --git a/Firmware/doc/about.png b/Firmware/doc/about.png index f1eb7974ce36b945acb20d4c463d44885f34dea7..66c83134b85db420a3acc2c3de5fa6fcc921a028 100644 GIT binary patch literal 3707 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 delta 1538 zcmV+d2L1VrCWj1=7k{Dz0{{R3fGW6l0000mP)t-s0000005kvqH~#+q0003104(+O z_hn^cVPRqk2|WV?H)3L9|Ns9005bppHeFp`PQMq&000G&NklUi~5WM7%KfhujzO%&f?YtjLPo0UVR)sp%dP=a zAHIZ+k(WEnZ}{;d#m~JR z`?-U3*R9_V_kTNp^~gjX8N1GrgKi7e|LN$@W8Y0NE@?i(c8Qha+Siv7*iGTdz<$U^ zrgohp1ILElSm-G8hj>s5dklbVg{DNv_(Fm#cSjqJP3*cxrh^oZEEPqOu{~}ANCoT$ zMXrI&1)O0>f<7N;fH@zJLH+$;WC^+-q~LYVjt){;$bT_AMXvoS6i@ypz5IsA#)TSt zD_2Pj*3-*fA|I|;6){*tJSy@;;sp085R>E`g%)EWF}N2wCLVi6hRPjJ3K>oWLPuid z#ZfW1A6XWUJtITM#)A%)2TWj>hw>g8XET&O}P&-lDnFaKU-evo1&eW93ybG$=X z4qT7n?cPu?H;KF@9^;F#gV259ZqZ0~@2Hm>M2?F`IPqi2RKX-7FN?G;4AR5UrU7A-vBsB@pFQe!he=>dbvU56C%SZp~ySy<@1pb_a>5) z(uJJLP3XT^HX-2b4f$YbAlSZoGIzlL6qz?+7gL#JWpr#=2R0<-EiOKbAPc_&MaCh< zNZv`ZGAte?Mh;YEpz_O#NU)SIw4@^YyJPgoF=?xfXNUqhG46kSrQmnDL*xOigwwQB zHh<}uPfCssQt@PGMSjsBWy5X>CLg1wAd9PP@-iLFWbt`0;8f%s@pyu`J6kWek38PK z@2}6V$4`&{!!z?S{`g^mKACdQ$1ec4=d5S@`G?OhU;pqtyn!OmB@4w1w~k%Ceg1KF ztAr@>v%XjK{uMD(WRL6|88|w2BvR`7Ie$Ly9PeJM(9c$Dbl$au;IJ$*^D9&26lA6e z!oGp@b0c*yP=w5iR@49gLm8=O+)WMsx)LC?Pgh+wn=%xI7buYYH1 zO$RCX#gOiUt0o4Viku)G$J=*O*x!&|ZXY>$vDMI=88-nFKA4{~PY3MK0}3@4TRTKf zoLuEH%QqG|laTk?zhHg2L1ba^lx$)ZsrKW-5nm@IP%zb8S7CFw3#>19ftvw2t6=tn(;`&YcXxSd*3hT>FA%9DYtz-ioTob%inSEwOa0!u?Uyy;0ZTGCr6BIXB9Z@LdpHT9>NB4lasZe|?$V{3;AExkxn#9F5dXNse7A;8f%c@pv?s z;T<-+niN^s$S&$RDHO5v)tXI{FCIHYP8b)`YIhQH9lhKnG8&XnP88VO8Gi(-NlD69 zPI@kq1GO&{=?fWDG1we>l%M7Eomy&=GMms?Ce><(co z<2#GMN_x3t)9AuX))AfDy*u5bK3o&SGa7AtonRDz$uoc;mbQn`OwLy_pJSwsxE3zUh oatygM<_B?)$Xzi%iMvDo58HKlG%#XqqyPW_07*qoM6N<$f@+f1Jpcdz diff --git a/Firmware/doc/allmodes.png b/Firmware/doc/allmodes.png index 841e5136f540595c4385befc5a4c4d40dc49fb8f..574035ff9b9cdf12e98f551bcc01b50e8bf103b5 100644 GIT binary patch literal 2021 zcmbut$_SazfKkC@<-n z8(C|uBDqE7WtZG5O5T;bg$S8V`f1yp``7K<+qpV@&*yob^E~JKobx>Ae4i(AyXRIN zj4=iPpyTf5vO_(J)$JlmQ{DT}qqG6gc(&bRm#gZZp;W2R+0AOdv0D$=b z=mVguE)xLe%)o2_&;XzSKmwqyC4{=1z8o4FU*r>7JMu^b=CU@aFf}Nc2HxQrYRdkGP)a z4p|)5p2awdy+0^f@bV&ljN&#oE}p=#(6y$;Yr!_$UdKP&di+PkjN+IayB<%~_)&fg zV+Fha`I=oDdQ=CtjoihO`0Tjmj4o1SO-tIZS^P3TDt(a^G|E~;Cf_*Yy)xo@M`-;9 zxL?nRQ>7F+GL->gAH0T|h@8hoj_25|f!z)7sbwlv^s(XcOs0c6&oKGajgN{!qFr4i zG4t;{f#Ozs^W?S0KC==#x%ck-x6&Hg+Uc!T^yln#icCMwP|AK%tT6kKQCE7l6I5}~ z@Rckwbf0ol^N3fLkUR22$UDbQ{yJKf{mJrMQx_iFNBJ_=^c*0px;UF$+1={I78qM+ zVPB24wCw%auseaE&+MAM?^&_yGp9=Ev`F8bTFg$G@ILi;kUx&u!TLOs_QW@5E=_^|XX`C4l_~xx-4*6!!K%?sj z(ttpfabw3xSEBX}apX2PEsnq)M?Tqw7ez2aF zGqJc%U`_~%F$Zghr0XubI0wc6R&fg#-Prl2;gigY#dszk!$_Rzt1>s#~LZe@pDtxy> zPsl2{p-gD6+~dP~;5;G7Xn`mx3SNj@wCDgO%v~`ytFtmI*(s=z$XrgjL<3D zBqTNjpNeg294SIMlutr{`_soXP4O*vJ)YBc$&->|GUZ8Gaep_Rbg~&aFCo0vZ}VEW z`+T-R?%k)hc3UA~{0c5EVY@@C0ahjhjP3CpHga#{lBU%ElSo7ZynANI)E(+KpF-!r z+jmnW~{Rhd5A^-_);qh8)Z9<;5{j!4_}vR=5_?RLG8`Bs3Q4UzZ3 zZJTF%CChgqEZe#gNpE;oNc-op#SzmgQoIyM=vlCM>5=svzzCTKf$P~6na92CO{O6d z76nBzBrkCi4$!V_%U-+`$U*8Q5%x@yL*`4)!%-Eo8h`dUj|~+_BJ7zb`OjnZNa4d# z1#*P*SR(8xL|Ut1PdQ)C%=J>7tcJaryI#tYMA(bANFwa76~JYi3TgwGBm$_d;vR+@xgb`&|mB3T<) zo=B@ghAZOu9+nN~B9SG%L_66(ImU0?hxosO58UQsS7!Fl*8l(j07*qoM6N<$f~o%o Am;e9( diff --git a/Firmware/doc/mainmenu.png b/Firmware/doc/mainmenu.png index 5256970a9417bac2cd7868dfca00ebe89844c232..b0ae9d83d9d5da3bf1c7bbacb983bff55590d30a 100644 GIT binary patch literal 7494 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 AX#fBK literal 2342 zcmV+>3EB3EP)U#5LYX`__2gubU)15ca1bCkWoBj#p+K?Z^)UY=oGcq8b z0GSAJkNnb3v0#V(sjh!TJLxkZ7moa58H^8g_?mF_O$+4mk>5REiQJ1fkSh}G(Uw#V z&OwcF@_t+ca*aw#aUKcsDfO}oWNvVtd?Ls%va%D;9FV z`$P6c{9*<&kbw+j&&VXZT&&xje;?hZSBC+)3}pGc8o55f_Kh4a-FpcT74UvF!JVus zpxZH}@%{Ezz8=U2BX=EL2Gai>_+niy$5i;m@by}tFr=<3DXc&~%oO2*{o<9#QlRf9 zGC?IPihx`g^0a7Ec9jZhq|`Vv8P~EYG9Z7AEDX-5mrUt&ih(MSr;nvr!FGn6uqVG$ zetB(CAcw#IUFBZXl&9$XZsr?zXphU^ULAPu&@GUYG%JyponkxU$Hkuy@)yVn!G1jc zz9e-JnAi69JWaoOU*fkvOx`#=|GTH8Gi2i*0OS~X==Xq@-d@R7$Ioj=QD^@G@}C0o zj9@dt4U3V<>yH|~KK?HIMJ8uhD%b~TEFdpKzTJi|KI=bIPLq-vBzRI%y@59#-`Osi z`UT|OoW~Lykmp_Uq0mv<`EM@PN^L&jLklNmnv>|{#FA1(%PVq2sx{BiERB?FuZ)AR zS;MR>@M8phT_dx2NgNdIgP;7viG!lz(jg9-$^?lq?v`U(&kpYaSw&=1=i$bvXAO$kJdFLD4|Q7&Ry=BvZ+UFq9Ner^z7MMnVRV;V*kdwt}X{@k4`e z%0v+DQ#uUi7&(xM+(mGOAgeRVK(>&hzzh$jvQv+f!A9Kcn5p}y<3Ntu!eHuE2zGS* zAY`TAKvs}%Q-DQ5zDt1ta)roq!&ju3`T*xIkZT>j1gAds(;(}ixo%3b)(yx>=kcfn zhy(p)SIC2t*l(9IkFWdoLz=F?>OAX{lRYC(Ll-qbRv_omH($6FOOulwBL^cvQ6?SB ziqp!xn<=5Lppy#m$J2#>*LLubLuE zOgLFd(v}(n@@L4xa1%+#G1BzeV)p@BT7q`qCut9*28i$bgGfq|UW;QVqiZ-%1KK;91dsJ6qf z1!Q(*R-Ec9XQC*l5y-R7V>aaCCW2fej~0h;{*0nl6*!GRwuUe1{1G>zI;RoH@hHV@ zd$nxRT`4|Uu+s?SBr>~Ml0>e@X#}!`92IP(&ZH*U1v`yE_TV%EdCp+0$vFh_r<1yE zMb06RS0QUt1{FAmKwdmWpaoqkaSnmJYPzo}^Jc<8-bG0j?i>R7YlE`_=Mc!dJC6ko zTR=9uXo=mNI2PMsAIh8=3vmejkR04VZeI}>Hy|V;`xEMhG;0}b# zhZ`W5D%eIi?rtj=W{E_~tAOAukR@_66R2rT$f8tA!&1$~ZD^B%y+EK33cdpQc}aFSxsnE7V%n% zj};Zaa*3?F_EOO0V&0~rBxWFM!PanLWfxRuu&F4C8OU)LdIQu@TK8D{C`zj6;#Url z4{NCRg((6c0~yFb1~QO=3}he!8OT5eGLVl&o+fZkQydz|iRr%66o&?~Rg|(3iHA+a z#i4;bH+-F;I5d#0n=7>^Dh>_gq>|dFI5d!t8@^a^Xl*gCrldX!ssj0Z&SL?^uz)-y zCz~TnMdgBloEW~Qq$ePs6uB`L>X}8afLt}Qk$ik+!FGh4UTO_wH-cSA(Ptp%R#HmQ zD?M&!*Pm~QOrq%dI8Y=n1Y|OE&&ng^7VIJT+9roNwFJw6%}t}ZrE5S| zrHhwG%8$I@HhUtVGqTbmAk%M0i*3o{Kvt18!OnwiA?r#?Q8;E`m%Br&^|B{qJ`vQi zw5SZka+onq6mmUcSVloxVOX*+<~keO5pwNq$#)OPJM?Mk&6|>i@-jM)K;B01^qV)u z@cTHAK;8^F#KGGLxe+GEM$RLUH%Cqwu{`m0JLeI|B_K~Z?AthxK;8$L2XFP5!FJ9g zkhe29?cgm()^74tne*rn8U8YmcWFQd@>!9cF+YhtBD-RK6T3tH9}y7lvM4H2lK=n! M07*qoM6N<$f&&Id-~a#s diff --git a/Firmware/doc/osd.png b/Firmware/doc/osd.png index d374bb8680b2fd78ca859ea6a5a4d27db67b0c7d..ab3abf51901e95871a28af5b1db75c3211191529 100644 GIT binary patch literal 3037 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 literal 839 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 delta 969 zcmV;)12+8J7}5uj7k{Dz0{{R3c4Iy60000XP)t-s0000005kvqH~#+q0003104(+O z_X!C-|Ns9005bppHd?B)+yDRrY)M2xRCwC$o#}CdFc5{^N;*j$RNxx;n?I_75>jPi z%%MHR5eI2^{g})!0mkSXR?B<3xZQ5UxBua}bGQ>WAxbt;Ge!fQh$@~-*g$7ukSM)N8&IYUw>uuc*7rQA#2|E=nd77m<>S`aXYUwh6GJ z$bSbEMbuM;lU8?77o{ZfgQ9Tp&P6>>+S&QuSTc@*B7c*tBI>mOQ-p*S4Hf{!@fH|` zi~Pefvc)^{oL}*aB1FD9%k_7^;v9vD{6v!Sz(oG4>Uigc(BSR;idz&??e%7EBJz7y z?bYkri2O(>YY|C{t7sM%EwY8qi*_PE5K6Zt?lqCW1X*>Ivwp=f3KjWj5%;94h*Y~- zK!{{~v42TE=~sNCz^@oYIUX3YHOacje+LwQe#I{eA5PE}2Yk%0M9U&S49c_HVY}gV zquQGi`EgK0fC+iY1InyliG#wEF>j{m`9=2qN=Ovin8cIuw_TAR2*rvnxxlYDMuA^} zUx8nNUx8nNU-@qoF?rCbUkQZ5Ztqy+2SVX@_kZqJVxYjU*z_wq1JVt%MMl}Fu0Uyt zQkZmJeR2m-6rrLH1o4%@LZHk_FzJB>lt$HF#1WqeWfUhiN_oJHV0k8WH8lv5~KpovZj7Kn6_ zt$!p?^2Jl=pevyKvD#}32C-ln*do9^|CyzcwrvJ;jxt9DTV8g!CndmA5j9^JHRTLI zc_A6+lhg;LAELPUmP{Wqz%Igxi=s|a*RrTws+lF@M9+&sS3rSZc^ALZ-L3WG#YH(G z^38R52S+K2c(Q0bQ0k);MEtHC#2Ol$nb{6eDiQGNvpcYh)>AEm=a6oxuntp~V)XMM`Af zN(_=AMXBr=*(Q`_WEsoM>)!L;_kGXl-uJxk_k7Oxe9!ZH&i6deInVEp?-eTxM6f}gFg3g+kk z#1+iX{f8OB{C}96=EudxpFMk)NRvkU)l!%ssNz&6D$DyOdSCJCm>+Y|6n%= zkpGDs2$225uOQ%G&>%nt1nm4P(!lR`mjVFfpSA(OzeoZA0s!EDWfK5w5Z-wH8$Uwb z7rpBno9avq@V0?{-<@l{Mh=NvOvLt_MHAy+ZgZL!-U@zt+}`YM2K< zeJ&_i={}MCL1Usrl-`}{oBBb1g3bPP{80Yc$ktk{wfaWcRz~Ee`=q!wj2`&nnO#E~ zPM;+-V<<@{nu&|3H2;0??Y*U~`rzUA4q@;>nQ%7TJ*yIydl1(Dx!dy5kFmn;B}?yf zX6X5sgWGJgE8k26Er&TUmrdT2BO>E_bC*LdxX*L?T_|G?^jE|4hs9u=ctc`XA2O3+ zj4hs&!r5tx56%#Wx@Oa~Kh`QT@>70%({hOAmwt`ITZLsHdpcguD6gFRsv^>K*X^O( zMGs-=$LN93&wBQa{@!!g*=){_MCa@kK@Rur#l@Z|RP};%q2NBT_}u6N=bGo^R=8^3 z^M?-~f!akKM{ylf=(q+K74~hleS58teZOxdx7-(_zq+s=Wroxo0Z$6&x5uuH_hdX8 z9!TyMht#~94RR6aJKA0yn_6V6mvyeU`K(t_j4UuPg$cJ$dD}VqGTj%uCvU!_bzfiG zrdG^Qg|0&`ag7uSUA{zo$LlQB3&K;(9u#q8=LbXwYpxQv(7H>#PYXWn)Y~|9T9}^u zu`wkou0X62W6M!^bvNtE;Gsu9=$~Tu2tlTJwZstrFx$+!@WHO~CmqcndP${^6TjaP zqgygIlM+uzL(EQUF=L6v{%q#EuT&*=@6pU3uGqNTn;|4(Z!TfiDj7jdR;J03hI#-= zVtpu01zxS`)H<#N-w{OIit6!qz_-Y5fjmB;iSk?M7h}(`w&{j&eNgrdqoVN21Q&yX zoPB$lZbru%fwHXK@PU;%_RL!!Pz@2~${LmK{kZ-)4E*Iy<>0)Ia;&c|vG(%E4q7AU z+q*@Bm-@j3On^B@x~o2d*K~o!pV!e&m}@sGD3V~~D-^bP@2gX7iKS$IHZl6HdY6fQ z-I3OGnkLZu?HcpQIRXG{e~s`ku<*fB`-aQ6w%vQ$OO+5n(B!OrkrU3b<+)E+m=hCe&r>e zL4!1GO4r@)=&UTxs_HPg*wFKRI7%ZFLCOE^nbD3L{P>#p<*=ayjdQj82O9jWgQ z|6u8#F1v@S<_2DT!Y(UQM@vFlB)mp7eQ8ZR`A6d z=1%Vq8i%!7QW#KJwW{ytwZL~>%GU5FyHxKWq9dnp^=r^@hRevUmQ@UFG2>B_U+KX; z&CU-J5*oHFBYbEL_RXeW)+OpxqC9ACe%pnB^b(T6keDLQ8uXW!#@wY}6k>|r`^yz} z2GTB<$}|jANG#8(O{Xjww+yJY+g)Q_Fyo8a=?1SNjw50Si;v%^y0OH^=%!zBLptC| z_V_r0*r(EJ(2&h-fZEtw(MS*0LX4ZJauKzv^lrST7q! zuN7y#zvk~AhPjQFjW?AatbYnEjq&A*L(FwRd(Yn_`%r;&y@B!@Fjvio+@pS6*p-8` z_nma!c!q)3K^r{``u3z4YD!uxk`8VX@h2#vh3VSf0cur`Qpc-v0;BWP9E$lOvMEn) znjhhzO22kF-rLd~kzkx=fYj_Xhy=Z!7aNP6q_RtM&PXJJCJ+wdhf!Bz59CoLW{s;; z*ht=6w`}|H<8c4sI?n{$5VFK@F0i`B;4rUi&UpDnrr=J0-Ko}WtON1_idbU9$bQ2W zZkZFIP=<<14uuEj=(;EpEQ>;G)A02({T{poRH9m?N@F!_&^Rf)NUqTeR%xxpnE|1s}Y@}xHy0)KKMo@ciHqq*r-)J7!_|!kTiX@?$#v6BM z?VT9X;L}N{q0Xof!m$E(Pq=))O{pPk9{nxz()3dwhD2@y<9&rr*Mk=pU9S|rS{C12 zrY+apvK+&G{c-dPPq>^9-3Gflf3s;hT75`J`-&izX~yfBqSD@07%>!pSf?uiw$j^(9io&^ zEJr)==@Z@OLhf|nmkOhKy+_Wxchbp^xM~^4!J)GABRtf@S^3`xBHBfYE}=(s1Pwiz zSsl)1+RWX8BVU6I=Y}PRd5Gq*!quuTl+Qs;l&xk+X#1F>F-m?e{6^_shDAGS)+w{A z_XKhFJvBMxY}Zzf6p15zc_2VshNcz(Z`NZzHfTqPJ)6Pk@QKrc%rYJve68l{i3L9F(OxHms_|Z0prg+m~#NuOaQf}>t;c0DsEu1PJU?_1d zu*azXTyxm8r0}hz?9$*v6;oHK^V>MWc^xRJYHtL+camE0s$Xb8Gd40LJZZWhtW^M< zvBr*QvQQ|$kiy@tt|DSc^{<55C80}o^rkuC?2IsY=eqFvnfDoG=B`Q!YpYvsG@~&x z5cN9!AU0kp6DutUk1{~X>l_g3k1wnd=!dW){knYDRz+=QyOcWGOPJ(fT+ztvxMZSQ z(R}=5xzqksdz?%Nj%jndIs3`rCwb>xC-IjaPFm8=Lnq6)lT|l7q~ju$!d+ZcRqNRK z#@+5gVZ86FM~OuPht51_y2#YYM1lB>cZ>U5kq5&D%S-Y}&bYi#H2h?2mF}*=kb5%D zcKg1CzcUdQqkG3zMz`F*hbp*UYoD~wOa5&Kl3o~NWL=kNQ8;MF81&rQ`EEvdB~-4! z+$PaoA<%j;M$ z`OS(+$a2D)R8Gc+STe}#+^IO(m`Ddb5&HC|g&OS%dkTd^tB`AZnwsU2GuGL-=u|&6 zxV^$WyODcIh78b(2A6CH)VR;XhdE#N`Js21b=L3b8=H|Ny$da2NO|$Co9-s3T$UR- zWvCWHHBLyQT4PvUDHYTZ0+h zP<4V}-PQN@f)K9c@Tc2_m*s>t#$qXI21vYz6TJaKu5Cko3<`eZv(Ml4aiY{>e?o;z z#2BSb)=7b_?5AFydlc)lAgmDYzUeUn#;%7i*r)e+A8Ze9FlYv<;tTuI12%hpFjC!d zQlVS1<#0L+n4|_I*vcMuY`j}}_*qawmB=ceLauo%%~~QRoa~Pc+;rH{=0R?WxtrsU zpx#yKgmrTR_j&UqO=#Lbq22fUz6Sr zSjIX(*Vqql;RM%MLSP;(gg(CM+eyK&aR4@LHLPXk7YG*lsaCLuk_3iKzmScKqzUvb zE?|4y$plT#tl*v+pr_W;jZcsX}(J-$XC7Dbi`zyW#f9ma>agv1q^)w&kT6mCdNJ!fO zQm5nWqJKT6Bih8ZL4xkSXJedLIdMrKu`xwt=9(1QEeR05o45vdyv;>71{%P`(88eb H2r=p(ivpBb delta 1225 zcmV;)1UCDCAkYbr7k`oj0{{R3RkypV0000mP)t-s0000005kvqH~#+q0003104(+O z_hn^cVPRqk2|WV?H)3L9|Ns9005bppHeFp`PQMq&000DANklo`G4sJ{#;1ra=F+?y~m%w zm)B80Ld^sVL;VPK6HE+>pa_c4CcGzafMr zVG7c8yMg66=-69b$+!hE4Te*yGn)qryhsR;yJ zFxgNgO5P!kd6C0q*Z%MlKHN^-S2HXpROLCV476GbA4JlL&8Ip_lcVWa$nIf2@ z+Ctq3s8h9(FphxB11BHI)VK*jgMIK#zZ9|)`ltc8980e^MI@YNNh8=sz1K z8%wCzkSG+=G6EQh5(uIo5e19M)^QSoB_nPx2ziDi$T%b<0HS4D@EmQS6$Co*1f8Fi z(iLGN!UOe=!T?W1`A7wU)Kgpcd86$E=VB0_L6n{E(%716lF1Vtd@f}+IE2IgNDhR%Kv zsJnL!fjH^Q4ao>T=J{S)5O$5g+{BWoE_2(^PBr}9;e@Fj0WWbp$XXzE)-xx4sUZac z0q)rjpK8?z>u%b5=L_{94AN3~%c2XoQdqsDw{7um|>8yYEe4%;- zU4LIV&3s{1(|zzDVJ8jRDh6;m47G2Oc5@gm)kJH^HN{m5r$YL zV9M*gbmkfY&F9{`c%j^O5vH>yjQKhG=jjXeL3qya35QFAbWo1}{JI1(92@}+cB(=%BZhSI?R&`|I@Mc5V1Nri zVUaB`8bFZ7_e$pr4It>OO%W795fniY6hRRbK@k)|5!@mDsL-z89#w=Qgv91cMffnn zz!quE>Ar^4GJ@Y3yKF+Jvq!2OAwq0u7Ji3U5k89`8PZ8HT0}77=AGyl9~D8xwjwBk nA~c7f|D);@2>Sopejnin+IyLDvE<-o00000NkvXXu0mjf7_=c$ diff --git a/Firmware/doc/singlemode.png b/Firmware/doc/singlemode.png index 31d73a05f9ee8bf40e3c926e7e78eb3126f0a928..529bf428faf449cf333ee34ae72adaa16ccf3f48 100644 GIT binary patch literal 3712 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 delta 1100 zcmV-S1he~q9n=Vr7k`2T0{{R3hlagC0000mP)t-s0000005kvqH~#+q0003104(+O z_hn^cVPRqk2|WV?H)3L9|Ns9005bppHeFp`PQMq&000BuNklMz~}rb28G}R=4Ub1qo2lL4>ssh#fULN)_-wby8Fr)4u?bR+qwPu zdl+u*A-6=FnA<~ci}=P2WFP|>$W0@k&LMnv*XFw$?)m@wFB?1Mwmtyz{*W`Oyg!Wm zKEiGg*}#tHFx&$Z_@MWYbRULpfwh@Ey}XnCfxING(bWFuB!q@2>(qS9> z#T9iAi7W-(yT}AJjkiBxw}&j$TSJ(hDix|qY8;uwwbc?CkQddPY-(e{ zsbIAo@wTD(AR~R8HDE!Rl~?>&a;F#iTp|% zc(?d9XVNq>tN*4=TqsGS7KSB96<-iS@sQnC$kEt;#pT{Vxf6F<&L zUm%n7B!A+hXfa`|Xi?_UGjDY~`2h)LHdjS<4k(b#6wXbUK<4JM6X8pnPrj1S3$xj+ zgd8W%!~?l6h*aP~*#^&C$~TC63SA+G&4k?^@?3N1nak&q*U3~sek5Y|${f}hW1bWh z$}~O?;Up<;Hdj!#^MMQ?!!Ngr9DgqVzUFU_KYwQLm*1|_yW|PxIf=OenIas29OfM( z-=-l^f$SjXmmUY5T!j)-%SI(bmFKCjwnUD4;z0J1dHdxc=f`UMM##pzfo#Y6s~|k& zUJ3@tZ!K&)e5u4Vh75BTKz@txB{=QaKW^VTNtOLCOj2zi%Q|u|uHglKxhdpq5>q>u zxqtLqdXVb=9~!5;vCd2gA#`^YQ=DjXm` zhb#&=DnLuvq(5I9R7(m*lA^+P#$l$=2w`$Up`%kbyjLVSe2*|ND}F{4U528IV5^Szdd&)-^pq-c9%_*J7*d{dypORz>(a zS=ZqM`LmEMVSflVkaNKq)psJy{DBo9!#n~R$Up`%kQX82H(Q%P#_unGKJtGwAo6qE S_M}Px0000 diff --git a/Firmware/screen_allmodes.c b/Firmware/screen_allmodes.c index 1d7291c..d8d52a8 100644 --- a/Firmware/screen_allmodes.c +++ b/Firmware/screen_allmodes.c @@ -45,7 +45,7 @@ static menuitem_t modeset_items[] = { { "Linedoubler", &modeset_value_linedoubler, 2, 0 }, // 0 { "Scanline Profile", &modeset_value_slprofile, 3, 0 }, // 1 { " Apply to", &modeset_value_sleven, 4, 0 }, // 2 - { " Alternating scanlines", &modeset_value_slalt, 5, 0 }, // 3 + { " Alternating Scanlines", &modeset_value_slalt, 5, 0 }, // 3 { "Exit", NULL, 7, 0 }, // 4 };