Title: Comment programmer un émulateur NES ?
Date: 2023-09-20 18:37
Summary: SUMMARY
Category: Bloc-notes
Tags: afpy, talk, lyon, dev, python, TAG1, TAG2
Status: Published 

Par [Guillaumme Roche][author], organisé par [CourtBouillon][cbouillon], [Genymobile][stella] et l'[AFPy][afpy]. (via [Meetup][meetup]).

_**Support**: sur [``][support]_

### Comment programmer un émulateur NES ?

> Pour ce meetup de rentrée, Guillaume nous parle d’émulation, de simulation, de virtualisation… et d’un peu de C++ !
>
> Ces différents concepts permettent d'exécuter des programmes hors du cadre matériel et logiciel pour lequel ils ont été conçu. Si le cas d'usage le plus populaire aujourd'hui est le rétro-gaming, Il en existe une multitude. Il est d'ailleurs probable que vous utilisiez au quotidien ces technologies.
>
> Passionné par ces aspects, je me suis lancé le défi d'implémenter un émulateur d'une console NES. Pourquoi la NES ? C'est une machine relativement simple, extrêmement bien documentée, et de nombreux émulateurs open-source existants peuvent nous aider.
>
> Je vous propose de découvrir avec moi une architecture possible d'un émulateur, et comment en implémenter un en nous focalisant sur le CPU, la mémoire, et les fameuses ROMs. Nous évoquerons également comment rendre notre émulateur le plus fidèle possible. Enfin, nous verrons quelle stratégie de tests peuvent s’appliquer sur des projets d'émulateurs.

---

Notes personnelles
==================

* Définitions
    - Simulation? Réimplémenter le comportent d'un OS (WINE)
    - Émulation? Réimplémenter le hardware ()
    - Virtualisation? Émulation avec accès direct au hardware
* implementation
    - NES CPU : MOS 6502
    - les registres: un objet
    - Initialisation CPU
    - types d'instruction
* Précision de l'émulation
    - partit pris on aurait pu vouloir ciler la perf
* Tests
    -


[afpy]: https://www.afpy.org/
[author]: https://github.com/guillaume-roche
https://gitlab.com/guillaumeroche/Nestor
[cbouillon]: https://www.courtbouillon.org/
[meetup]: https://www.meetup.com/python-afpy-lyon/events/295796925/
[genymobile]: https://www.genymobile.com/
[support]: https://
