実際のCommodore 64(エミュレーターではない)のラスターラインに8つ以上のスプライトを入れることはできますか? スプライトは異なる必要はありません。c64:ラスターラインに9つのスプライトを持つ方法
3
A
答えて
5
はいアセンブリを割り込みで使用することは可能です。割り込みはビデオチップのラスタに揃えられます。最初のスプライトがビデオチップによってレンダリングされた後(NOPを使用して必要な時間待つ)、その位置と形状がさらに右に変更されます。次に、ネストラスタがそこに「参照」する必要があるため、スプライトがレンダリングされて元の場所にリセットされるまで、割り込みは再び待機します。
このテクニックを使用すると、1つのラスタラインに8つ以上のスプライトを持つことができます。このテクニックは、左/右の境界にスプライトがある場合のshowing sprites in the borderに似ています。画面の幅を狭くするためにレジスタを変更する代わりに、スプライトのx位置を変更する必要があります。
4
短い回答:はい。 長い答え:はい、いくつかの注意点がある:
VICII(ビデオチップ)が最大8ハードウェアスプライトのrasterfor各あたりスプライトデータの3つのバイトを読み込み、バッファされたデータが上に表示されることを意味します次のラスタ。
ハードウェアスプライトを指定したラスタに2回表示すると、そのバッファは次のラスタを空にします。したがって、次のラスタではスプライト内に透明なストライプが表示されます。
また、スプライトデータのフェッチは、現在のラスタ/次のラスタの終わり付近で行われるため、スプライト#0を重複させることにかなり制限されています(そのデータが最初にフェッチされるため)。これまで画面の右側にあるビームは、重複したスプライトが見えるようにするためにサイドボーダーを削除する必要がありました。
関連する問題
- 1. パラメータを持つCSSスプライト?
- 2. 私はこのPNG持つPNGスプライト
- 3. マッチWinActive持つ任意の0-9数()
- 4. 2つのモデルフィールドを1つのレポートID odoo 9(REPORT)の下に持っていく方法は?
- 5. enyo、1つ以上のコントロールを持つパンを持つ方法
- 6. ExtJS:いくつかのルーツを持つTreePanelを持つ方法?
- 7. いつかLibGdxのスプライトを点滅させる方法
- 8. libgdx 1つのスプライトのように複数のスプライトにアルファを設定する方法
- 9. CakePHP - モーダルレイアウトを持つ方法
- 10. Commodore C64エミュレータ?
- 11. 1つのsqlクエリで2つのoderを持つ方法
- 12. IE 9つのクリアフォームフィールド
- 13. 同じウェブサイトに2つのドメインを持つ方法は?
- 14. Gridviewで1行に2つ以上のDropDownlistを持つ方法
- 15. テストフォルダにJAXRSエンドポイントを持つ方法
- 16. libgdxの異なる画面を持つゲームでスプライトを処理するための最良の方法
- 17. 9個以上のアイテムを持つPowerShellアレイのユーザー選択メニュー
- 18. 同じスキーマを持つ2つのテーブルを1つにマージする方法phpmyadmin
- 19. 9 HTTP GET要求を待つ方法角2
- 20. 2つのcolsを持つクラスを参照する方法2つのcolsを持つクラスのCompositeId FluentNhibernateのCompositeId?
- 21. 大きなフォントを持つWindows上のJava 9
- 22. ColdFusion 9複数のIDを持つCFScriptクエリ
- 23. PygameスプライトにRect属性を持たせる方法
- 24. laravelのリクエストを持つ1つのコントローラの他の方法へのリダイレクト方法
- 25. 日付の平均を持つ方法
- 26. 複数のウィンドウを持つ方法R
- 27. ヒストリを持つAutoCompleteTextViewの作成方法
- 28. HSQLDB複数のメモリデータベースを持つ方法
- 29. 複数のソート方法を持つ
- 30. 角2のモックを持つ方法