正直なところ、このトピックに関する私の知識は非常に不完全であり、私の問題を説明することすら難しいと感じているので、事前に、この質問のオープンエンドと一般的な希望に満ちた態度についてお詫びします。私は本当に投稿したくありませんでしたが、私は完全にそして完全に立ち往生しています。
NESエミュレータを起動しました。解釈されます(したがって、動的な再計算は行われません)。
Atmは、ROM(mapper 0 rom)をロードしてマップし、割り込みとPPUを処理する必要がある場所まで初期化コードを実行できます。それは私が立ち往生しているところです。
これが私のemuatmからの出力例です。実行は8000から始まり、800aで無限ループに陥り、そこからどのように進むかがわかりません。
8002: LDA #$10 ; read immediate value to set PPU control registers
8004: STA $2000 ; store value
8007: LDX #$FF ; load immediate value into X register
8009: TXS ; store X register into stack
800a: LDA $2002 ; read PPU flags into accumulator (set N flag based on bit 7)
800d: BPL ; test N flag, branch to 800a if not positive, (N is set)
800a: LDA $2002
800d: BPL
800a: LDA $2002
800d: BPL
800a: LDA $2002
800d: BPL
etc, etc etc (inf loop)
だから私の質問は、誰かが私のためにPPUレンダリングを介した1回の反復の基本を説明できますか?サイクルカウント、割り込みなどを含みます(つまり、240スキャンライン画面全体を描画して次の画面に移動します)。