3

ここでかなり大きな質問がありますが、数冊の参考書、インターネット、そしてあなたの本だけでは答えるのが本当に難しいと感じています.

  1. ビットマップを表示したいだけです。数秒待ちます。
  2. メモリから消去します。
  3. 別のビットマップを表示します。もう一度待ってください。
  4. それをメモリから消去します。
  5. 最終的なビットマップを表示します。最後にもう一度待ってください。
  6. そして、ご想像のとおり、それをメモリから消去します。
  7. 次に、標準の文字モードに入ります。 & 私のコードを実行し続ける - 画面が空白で始まり、ユーザーにテキスト入力などを求めるようになります...

太字のビットは、私が本当に問題を抱えています!

これは、表示ビットマップ部分を実行するために使用しているコードです.moでは無限ループに入っています...

*=$1000

        lda $4710
        sta $d020
        sta $d021
        ldx #$00

loaddccimage
        lda $3f40,x
        sta $0400,x
        lda $4040,x
        sta $0500,x
        lda $4140,x
        sta $0600,x
        lda $4240,x
        sta $0700,x
        lda $4328,x
        sta $d800,x
        lda $4428,x
        sta $d900,x
        lda $4528,x
        sta $da00,x
        lda $4628,x
        sta $db00,x
        inx
        bne loaddccimage

        lda #$3b
        sta $d011
        lda #$18
        sta $d016
        lda #$18
        sta $d018
        
        jsr *

*=$1FFE
        incbin "ASTRO1.prg"

これまでのところ、すべてを上書きできると考えてコードを繰り返してみましたが、 *=$1FFE は時系列的に機能していないようで、各ファイルでメモリ上書きエラーが発生し、常にデフォルトでincbin 関数で呼び出した最後のビットマップを表示します。各ビットマップ フレーム間ですべてをリセットする方法はありますか (ただし、黒にするだけです)。それとも、これらの画像を間違ってロードしているだけですか?

1 つのビットマップでもこれを行う方法が見つからないため、キャラクター モードに移行するのも難しいでしょう。おそらく、このコード構造全体が間違った方法であると思われます...

それとも、これは単に c64 ではできないことですか? ゲームのイントロでビットマップがサイクルするのを見たことがあると確信しているので、ここに行くのは気が進まない.

ここでの理解不足で申し訳ありませんが、私は一般的にプログラミングに慣れていませんが、正しい方向に進んでいると思います。これは本当に情報がないと思うので、多くの人があなたの答えから学ぶことができることを願っています.

提督を愛する友よ、

ジェームズ(スモーキーパーキン)

4

1 に答える 1