12086Fermer12088
GodzilLe 08/01/2017 à 00:50
Interessant: http://www.optimuscopri.me/nes/report.pdf

mais beaucoup d'approximation (et des choses dans le code qui sont.. horrible grin)
Il a utilisé une approche qui est proche de la mienne sans etre aussi poussée que celle que j'ai eu dans la gestion de la mémoire, je ne recopie jamais la mémoire, et fait un simple échange de pointeur.

Ce qui est etonant c'est qu'en 2007 il y avais un peu plus de doc que celle de Marat F. (qui a ce célèbre paragraphe: "Audio: a écrire") NESdev commencais a avoir pas mal de test de plus en plus poussé et une meileur comprehension du PPU (je sais parce que quand j'ai commencé mon propre emulateur en ~2003, la il n'y avais quasi aucune doc.. et j'ai pas mal suivit l'évolution de nesdev a cette epoque :/)
D'ailleurs il utilise un des test de blargg qui est un de ceux qui a "décrypté" le PPU a l'époque et sa doc tenais la route.


Il y a aussi quelques horreur de code de se genre:

while(x > 7) x-=7;

au lieu de faire un simple masque... C'est dommage ca bouffe BEAUCOUP de cycles pour rien

Quand au comptage de cycle et synchronisation entre les modules de son émulateur, si tous les émulateur "accurate" font du contage de cycle du CPU et en donne la valeur pour que APU et PPU tourne ce nombre de cycles (de mémoire l'unité des cycles est en cycle PPU et non CPU car il est clocké plus rapidemenet et ca evite des erreur d'arrondis) ce n'est pas pour faire joli, les callback c'est gentil, mais c'est beaucoup moins précis que le comptage de cycles.

Par contre si j'avais le temps je ferrais bien une version multithread de TI-NES histoire de voir ce que ca donne sur un CPU moderne, comme on a plusieurs coeur ca devrait marcher sans overhead massif.

Il y a aussi des approximation comme sur le jump indirect, apriori il n'est (était) pas au courant qu'il y a deux version du 6502, la version d'origine NMOS et la version CMOS (le 65C02) qui corrige certains bugs de la version originale. Nintendo utilise la version NMOS d'ou ce fonctionnement amusant smile

(tiens d'ailleurs pour avoir il y a quelque temps discuté avec un passionné du 6502, il semblerais que la toute premiere fab du 6502 contenais un autre bug bien gênant qui a été corrigé de suite, je ne me rappelle plus ce que c'était par contre sad, mais on peux encore trouver des KIM-1 qui ont ce chip smile )