De antemano, me disculpo por la finalización abierta, y el mal gusto general de esta pregunta, porque para ser honesto, mi conocimiento del tema es muy desigual y me resulta difícil incluso para describir mi problema Realmente no quería publicar, pero estoy total y completamente estancado.Teoría de la Emulación NES básica - Estoy atascado
He comenzado un emulador de NES. Se interpreta (por lo que no hay recomp dinámicas).
Atm puede cargar y mapear roms (mapper 0 roms) y ejecutar el código init hasta donde tengo que lidiar con las interrupciones y el PPU. Ahí es donde estoy atascado.
Aquí hay un ejemplo de salida de mi emu atm. La ejecución comienza en 8000, y toco un ciclo infinito en 800a donde no tengo idea de cómo progresar desde allí.
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)
Así que mi pregunta es, ¿puede alguien explicarme los fundamentos de 1 iteración a través de una PPU rinde por mí, incluyendo cosas como recuento de ciclos, interrupciones, etc (es decir, dibujar una pantalla entera 240 línea de escaneo y pasar a la siguiente).
Ta por agregar una etiqueta 6502 –
publicando en http://nesdev.parodius.com/ obtendrá resultados lejos, mucho más rápido y mejor que SO. Así es como es para los temas de nicho. –
Ya he publicado allí, pero 5 días después tengo 1 respuesta, y fue esencialmente leer los documentos (que tengo 100 veces, pero todavía estoy un poco confundido). –