実際の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. enyo、1つ以上のコントロールを持つパンを持つ方法
- 4. ExtJS:いくつかのルーツを持つTreePanelを持つ方法?
- 5. libgdx 1つのスプライトのように複数のスプライトにアルファを設定する方法
- 6. IE 9つのクリアフォームフィールド
- 7. CakePHP - モーダルレイアウトを持つ方法
- 8. 1つのsqlクエリで2つのoderを持つ方法
- 9. Commodore C64エミュレータ?
- 10. Gridviewで1行に2つ以上のDropDownlistを持つ方法
- 11. 同じウェブサイトに2つのドメインを持つ方法は?
- 12. テストフォルダにJAXRSエンドポイントを持つ方法
- 13. 9個以上のアイテムを持つPowerShellアレイのユーザー選択メニュー
- 14. ColdFusion 9複数のIDを持つCFScriptクエリ
- 15. 大きなフォントを持つWindows上のJava 9
- 16. 2つのcolsを持つクラスを参照する方法2つのcolsを持つクラスのCompositeId FluentNhibernateのCompositeId?
- 17. 1行に9つのマークの間に7つのハイスコアを選択して合計する方法
- 18. 複数のウィンドウを持つ方法R
- 19. ヒストリを持つAutoCompleteTextViewの作成方法
- 20. 複数のソート方法を持つ
- 21. 日付の平均を持つ方法
- 22. HSQLDB複数のメモリデータベースを持つ方法
- 23. PygameスプライトにRect属性を持たせる方法
- 24. RESTサービスのリソースを削除するために同じ符号を持つ2つのメソッドを持つ方法
- 25. 多くの画像ボタンで1つのアクティビティクラスを持つ方法
- 26. JavaScriptのハイチャート:2つのxAxisカテゴリを持つ方法?
- 27. オブジェクトのnsmutablearrayを持つオブジェクトのNSmutableArrayを持つオブジェクト - 解放する方法
- 28. アンドロイドのxmlレイアウトで3つの行に9つのボタンを配置する方法は?
- 29. $記号を持つクラスを持つ要素のセレクタを書く方法
- 30. Pygame:2つのスプライトを制御する