DOC_fpal.jp 3.07 KB

        PAL モードでの画面表示に関する仕様の追加


1.今回のパッチの目的

        PAL 方式の TV は NTSC の TV に比べ解像度が高いため、そのまま表示
        したのでは画面の上下が空いてしまいます。このパッチは PAL 方式の 
        TVでフルスクリーン表示を行うためのパッチです。


2.FPAL モードについて

        簡易に PAL 方式のテレビでの全画面表示を行うために、新たに FPAL
        (FULL SCREEN PAL) モードが追加されました。
        FPAL モードを使用するためには、今まで osViSetMode で PAL で設定
        していた部分を FPAL に変更してください。

          例:  旧:osViSetMode(&osViModeTable[OS_VI_PAL_LAN1]);
                新:osViSetMode(&osViModeTable[OS_VI_FPAL_LAN1]);

                旧:osViSetMode(&osViModePalLpn1);
                新:osViSetMode(&osViModeFpalLpn1);

        FPAL モードでは PAL と NTSC との解像度の違いにあわせて、走査線の
        数を従来の PAL モードより48本追加しています。このため NTSC のプ
        ログラムをそのまま FPAL モードで表示した場合、画面下部にフレーム
        バッファ外の領域が表示されてしまいます。
        これを回避するには以下の2つの方法があります。

        (A)フレームバッファサイズの拡大
                ローレゾリューションの場合、標準のフレームバッファに
                48line 追加したフレームバッファ(320x288)、ハイレゾリュー
                ションの場合は 96line 追加したフレームバッファ(640x576)
                を用意することで、全画面領域への描画が可能です。
                NTSC に比べてもより高解像度の画面が得られますが、フレー
                ムバッファサイズの変更に伴い、プログラムやグラフィックデー
                タの変更が必要になる場合があります。

        (B)osViSetYScale の使用
                osViSetYScale で画面を縦方向に引き延ばすことで、簡易に全
                画面表示を行うことが可能です。
                FPALモードの場合、 osViSetMode 実行後
                        osViSetYScale(0.833);
                とすることで、ほぼ全領域に表示が行われます。
                この場合フレームバッファサイズを変更する必要はなく、NTSC
                からの変更は容易です。
                この方法の欠点は画面が全体的にぼやけてしまうことです。
                なお、osViSetYScale を使用する場合、preNMI 発生時や
                osViBlack(1) 実行時に YScale を1に戻す必要があります。


3.osViExtendVStart の追加

        フレームバッファサイズを拡大する手法をとった場合、48line の追加
        がプログラムにとって処理的に大きすぎる負担となる場合があります。
        このような場合、表示領域とフレームバッファサイズの拡大幅を少し小
        さくすることで、妥当な結果を得ることが可能です。

                void osViExtendVStart(u32 value)

        は今回新たに追加された関数で、従来のPALモードに対する追加走査線
        の数を指定することが出来ます。
        引数は0から48までの間で使用してください。PALモードで

                 osViExtendVStart(48);

        とした場合、表示領域は FPAL モードと同じになります。
        走査線の追加を32本や24本にすることで、画面のほぼ全体へ表示を行い、
        かつ処理速度を落とさないことが可能です。 
        なお、osViExtendVStart はあくまで PAL モードに対する走査線の追加
        です。NTSC, MPAL, FPAL の各モードでは使用出来ません。