-
Notifications
You must be signed in to change notification settings - Fork 0
/
ModNES todo.txt
55 lines (39 loc) · 2.64 KB
/
ModNES todo.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
Próximos pasos:
> Implementar audio. Empezar por pulse wave, triangle y noise. Samples después vemos.
http://forums.nesdev.com/viewtopic.php?f=3&t=13749&start=15#p162874
> Todas las anotaciones de CHR RAM y CHR & PRG switching para mappers, los pasé al archivo CHR-RAM y Bank Switching.txt
> Hacer que OAM DMA empiece en OAM ADDR 2003 (sólo si algún juego escribe !=0 en OAM ADDR)
> Hacer accurate sprite 0 hit
> El scroll vertical no está bien en Xevious. En ciertos momentos se desincroniza y la actualización del background se ve en las 3 o 4 filas de abajo, esto no debería superar una fila de tiles.
> Brush roller trata de acceder a $4800 なに!!
> Ice climber también trata de acceder a un read unimplemented. Raro, la versión anterior con Cocoa OpenGL me parece que no fallaba.
> Implementar también OAM READ/WRITE 2004 (si? o dejar un assert y ver si algún juego lo usa)
> Implementar 8 sprites overflow flag (Según http://wiki.nesdev.com/w/index.php/Sprite_overflow_games sólo 7 juegos
dependen de este flag, es de muy baja prioridad implementarlo.)
> Implementar open bus para lectura de registros y demás.
Los registros de solo escritura devuelven el openbus al ser leidos.
Los registros que solo usan pocos bits, como $2002, el resto de los bits viene del openbus.
(en general los read unimplemented de los registros, seguro devuelven openbus)
El openbus es el último byte leído de la memoria. (consultar documentación a ver si puede haber algo más)
> Input completo con redefine keys
> Eliminar la práctica de include .c dentro de .c (sacar funciones static)
Debería? esto permite hacer funciones "privadas" con static. Pero xcode ignora los breakpoints en estos archivos.
Quizás se pueda hacer que Xcode haga andar igual estos breakpoints.
Ya hice esto con MemoryAccess.c, quedan Instructions.c y Addressing.c
> $2002.4 "VRAM write enable/disable" según una Doc, que las demás contradicen. Averiguar qué onda.
(Por ahora lo ignoro olímpicamente)
> Visual debugger, si es que hace falta. (Cocoa nativo GUI? implementar alguna SDL GUI? GUI propia?) No, creo que no hace falta.
--- done
√ FPS count y modo async a ver cuántos FPS tira ModNES unbound (100 fps)
√ No renderear pantalla cuando back y sprites están disabled
√ Left tile column clipping
√ Prioridad sprites - background
√ scroll a pantalla partida
√ Basic Input
√ Pausa
√ Implementar sprite 0 hit (básico)
√ Scroll pantalla completa
√ SDL 2
√ Implementar read_memory_disasm para no usar los handlers comunes de registros
√ Implementar save RAM (Pero sin persistencia)
√ Implementar cpu y ppu cycle counting, y quizas también frame count a nivel Nes.