CAMLBOY est un émulateur Game Boy écrit en OCaml et compilé en JavaScript pour s’exécuter dans le navigateur.
L’architecture modulaire s’appuie sur des interfaces génériques pour la lecture/écriture 8 bits et 16 bits et utilise des functors pour injecter les dépendances.
Le CPU est abstrait du bus via un functor, ce qui facilite la testabilité avec des mocks.
Le jeu d’instructions est défini à l’aide de GADTs pour paramétrer précisément les types d’arguments et simplifier l’exécution.
Des tests d’intégration exploitant des ROMs de test et ppx_expect assurent la détection rapide des régressions.
Après profilage et optimisations (Bigstringaf, inlining, modules GPU), l’émulateur atteint 60 FPS sur mobile et 100 FPS sur PC.
Un mode de benchmark headless permet de comparer les performances entre différents backends OCaml.
Get notified when new stories are published for "🇫🇷 Hacker News Français"