質問

事前に、私はこの問題の正直であることが非常に斑状であるため、私はこの質問の開放的な最善の恐れをお詫び申し上げます。私は本当に投稿したくなかったが、私は完全にそして完全に頑張りました。

NESエミュレータを開始しました。解釈されています(したがって、動的レシゴットなし)。

ATM ROM(Mapper 0 ROM)をロードしてマッピングし、割り込みやPPUを扱う必要がある場所までinitコードを実行できます。それは私が立ち往生しているところです。

私のEMU ATMからの出力例です。実行は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回の反復の基本の基本を教えてください。次の)。

役に立ちましたか?

解決

eMULETOTETERがあり、あなたは彼らの答えの原因を見ましたか?通常、それらはパフォーマンスのために書かれていて、それほど読みやすくされていませんが、あなたはあなたが行くためのTIDBITを見つけるかもしれません。割り込みが実行されるのを待っているコードはその割り込みを実行しましたか?割り込みが戻りアドレスを変更し、プログラムが続行できることがありますか?無限ループはレジスタのビットをポーリングしますか?それとも、それは自己に無条件の枝ですか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top