사전에이 주제에 대한 지식이 매우 희미하고 열심히 찾았 기 때문에이 질문의 개방성과 일반적인 우울함에 대해 사과드립니다. 내 문제를 설명하기까지. 나는 정말로 게시하고 싶지 않았지만 완전히 완전하게 붙어 있습니다.기본 NES 에뮬레이션 이론 - 나는 갇혔다
NES 에뮬레이터를 시작했습니다. 그것은 해석되었으므로 (그래서 동적 recomp).
Atm ROM (매퍼 0 롬)을로드 및 매핑하고 인터럽트 및 PPU를 처리해야하는 위치까지 초기화 코드를 실행할 수 있습니다. 그게 내가 붙어있는 곳이야.
다음은 내 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)
그래서 제 질문은 사람이 사이클 카운트 같은 것들, 인터럽트 등 (즉, 하나 개의 전체 240 주사선 화면을 그릴과에 이동을 포함하여, 나를 위해 렌더링 PPU를 통해 기초 한 반복을 설명하시기 바랍니다 수있다 다음 것).
6502 태그를 추가하는 데 사용되는 –
http://nesdev.parodius.com/에서 게시하면 결과가 훨씬 빠르고 효율적으로 향상됩니다. 그것이 바로 틈새 주제에 대한 것입니다. –
나는 이미 거기에 글을 올렸지 만, 5 일 후에 나는 1 개의 답을 가지고 있으며, 본질적으로 문서를 읽었다. (나는 100 번이나 있지만, 나는 아직도 혼란 스럽다.) –