Show HN: Our space game has a built-in RISC-V emulator that runs Linux
Le projet PasRISCV est un émulateur RISC‑V 64 bits développé en Object Pascal, distribué en open source sous licence zlib et utilisé pour faire tourner un système Linux complet dans le jeu SEEDS. L'émulation est complète (machine virtuelle avec affichage, stockage et interruptions), supporte RV64GC, extensions Hypervisor et Vector et fonctionne via une approche hybride interpréteur + JIT (JIT disponible sur hôtes x86‑64), avec un mode flottant logiciel pour un comportement IEEE‑754 strict. Le système Linux démarre via la chaîne OpenSBI→U‑Boot et utilise des images disque attachées en VirtIO ou NVMe (avec possibilités read‑only pour mises à jour et partitions utilisateur séparées), tandis que des répertoires hôtes peuvent être exposés via VirtIO‑9P/FS pour faciliter le développement. Pour l'I/O multimédia, le jeu utilise principalement un framebuffer simple (traité par des shaders pour effets rétro), tandis que l'émulateur propose aussi VirtIO GPU et autres adaptateurs et émule plusieurs cartes son rétro (PCM, OPL2/3) utilisées notamment par le mini‑jeu Space Prowler et son chiptune créé avec un éditeur interne. La communication entre la VM et le jeu se fait via vsock et un format binaire optimisé, le réseau utilisateur est fourni par une pile NAT interne mais désactivé dans le jeu pour des raisons de sécurité, et l'émulateur offre des outils de débogage (désassembleur, serveur GDB) facilitant l'intégration et l'automatisation.