パスワードを忘れた? アカウント作成

X68k 用スプライト拡縮回路がついに発表される」記事へのコメント

  • by Anonymous Coward

    どうもよく分からんのだけど……。
    単純な最近傍補間の話だよね?
    だったら、小数点演算とかLUTに頼らず、DDAでやるのが定石じゃないのかな。

    # 的外れなコメントだったら、申し訳ないです。

    • by seisei (584) on 2024年01月30日 0時53分 (#4600802) ホームページ 日記

      >、小数点演算とかLUTに頼らず、DDAでやるのが定石

      禿同と言うか全く仰る通りでそれ ( 系な事 ) をビット操作でシミュるのが今回の主旨で
      回路図後半のこの記述

      > * LS(AS/F/ALS/S/HCT/N)306 × 2 的回路挿入 → 拡縮度 31 ( 拡大率 2.0 ) まで処理 ?

      は拡大方法の一例なのですがつまり縮小メインな処理だが予め拡大しておく
      その縮小 ( 間引き ) 法則それがカウンタ IC 出力結果とのパラメータ比較です
      ( そのパラメータは前述の通り LUT 無しに動的生成されたものです )

      回転処理が絡んで来ると LUT 頼みな高速性が欲しくなるかも知れませんが

      --
      謝々々々 台湾宮廷料理海味館 名●屋市熊の前二丁目 ( MiniStop 対面 )
      • ここにぶら下げるのが適切なのか分かりませんが

        > * アドレス挿げ替え成功時 → 準コプロとして半ダイレクト拡縮 ?


        アドレス挿げ替えというのはシャドーイング ( 的なもの ) の事で
        例としては本体起動時に IPL-ROM が先頭領域に現れる感じの小細工です

        回路図コメントにある通り T ( G ) -RAM なりの特定領域に書込みなりした際に
        それを拾って PCG をその時に動的拡縮してスプライトVRAM へハードウェア高速転送
        できないかと目論んでいます ( 単にアドレスバスをショートさせるだけですが未経験な方法 )

        # -DTACK 発生前に単に挿げ替えればそれでいいという前提で暫定設計してみます

        --
        謝々々々 台湾宮廷料理海味館 名●屋市熊の前二丁目 ( MiniStop 対面 )
      • by seisei (584) on 2024年02月07日 13時51分 (#4602382) ホームページ 日記

        この拡縮回路自体は内部クロック 4 サイクル程度で処理完了しますので
        回路図デフォの 100 MHz 水晶の場合ならば
        Outside X68000 P.64 のタイミング表を見る限り
        X68k 10 MHz の 1 サイクルに間に合う場合も充分想定出来ると皮算用しています
        ( 回路図中
        > * シフトピクセル数生成 ( 0 ( 1 ) - 3 ( 4 ) )

        の段の LUT 動的生成部分は内部 1 サイクルを経ずにその場で処理完了
        ≒ ハードワイアド LUT 回路 )

        又回路図中の 20 MHz で代用してある部分を 50 MHz にせずとも
        拡縮処理自体は X68k 10 MHz の 2 サイクル程度しかかけていませんので
        move 命令のサイクルには矢張り充分間に合うでしょう
        ( X68k シリーズの格チップは 74AS シリーズ程度には高速か )

        当回路では贅沢にもアドレス値それ自体で拡縮パラメータを表現していますので
        ベストケースでは move 命令 3 回だけで
        元データ 16 ビット分のスプライトデータを縮小出来る事になろうか
        と皮算用していますが
        例えば 1/5 縮小の場合は単純計算で 5 回の縮小回路稼働が必要であり
        その場合は 2 × 5 + 1 = 11 内部クロックが最低限必要ですが
        どう最悪な転び方をしようとも move 命令のサイクルには充分間に合うでしょう

        --
        謝々々々 台湾宮廷料理海味館 名●屋市熊の前二丁目 ( MiniStop 対面 )
        • by seisei (584) on 2024年02月08日 17時17分 (#4602434) ホームページ 日記

          > 例えば 1/5 縮小の場合は単純計算で 5 回の縮小回路稼働が必要であり
          > その場合は 2 × 5 + 1 = 11 内部クロックが最低限必要ですが
          > どう最悪な転び方をしようとも move 命令のサイクルには充分間に合うでしょう

          これは所謂デカキャラ ( 若者言葉 ) に付いてなのですが
          現状では拡縮一回毎にソフトウェア転送が必要なので
          内部サイクル 11 回でなく68k MPU レベルの move なり 11 回が必要です
          申訳ありません訂正させて下さい
          # 慌てて執筆するとおかしな勘違いをして碌な事にならないと身に染みている筈だったのに
          # 申訳ないやら悔しいやら

          但しと言うか勿論スプライト一つだけならば拡縮 1 回だけで済みます
          ( ピクセルを左シフトして体裁を整える ( 中央寄せ他 ) 場合は
          回路図最後辺りのコメント通り更にダミー拡縮 1 回が必要です
          この時には ( ヒネり無しで考えると ) 例えば敵弾の様な透明部分を把握済なスプライトパターン
          を指定する必要がありますがその指定をミドルウェア経由で半自動でと予定しています )

          --
          謝々々々 台湾宮廷料理海味館 名●屋市熊の前二丁目 ( MiniStop 対面 )
      • 便宜上スプライトパレット領域に擬えての説明となります

        スプライトパレットスロット 1 本毎に拡縮率を割り振ってあり
        現状ですと縮小のみをサポートしているので
        一言で言えばパレットスロット 0 番が拡縮率 0 ( 縮小率 15 ) に対応しており
        表示ピクセル数は 1 ピクセルのみと最小表示 ( 最高縮小 ) となり又
        パレットスロット 15 番つまり最終スロットが拡縮率 15 ( 縮小率 0 ) に対応しており
        表示としては拡縮なし状態となります

        その際には縮小演算回路としては真面目に処理して拡縮なしとなりますので
        ここをハードウェアレベルでフックして別の演算に割当てるという構想は
        回路図コメントの通りです

        同様にパレットスロット 0 番から 3 番までは単に 4 ビット × 例えば 4 ピクセル分
        を取出すたけですし回路規模の点からハードウェアレベルサポートを省略してあるので
        矢張り回路図コメント通りにゆくゆくは別のハードウェア演算に割当てたい所です
        ( bfins / bfffo 命令支援回路等 )

        --
        謝々々々 台湾宮廷料理海味館 名●屋市熊の前二丁目 ( MiniStop 対面 )

Stableって古いって意味だっけ? -- Debian初級

処理中...