[WIP] YAPSxP: Yet Another PSX Emulator for PSP
Un troisième portage de PCSX ? détrompez-vous ce futur émulateur n'a strictement rien à avoir avec PCsx. Il n'est pas encore finalisé car Hlide est en pleine écriture "from the scratch" de cet émulateur. Envie d'en savoir plus ?
Avant de vous parler de ce nouveau projet, il faut donc expliquer un minimum comment il est né et pourquoi. Hlide est le programmeur qui s'était proposé de programmer le Dynarec de Psx-P.
Ces idées et la théorie avancée pour faire fonctionner ce Dynarec ont su nous convaincre de ses capacités. Nous avons donc mis en contactHlide et Yoshihiro. Si la bonne volonté semblait être des deux côtés, Yoshihiro n'a jamais donné ses sources à Hlide pour des raisons qui lui sont propres et qu'il vous expliquera directement sur notre forum s'il en a envie Mais c'est son choix et il faut le respecter.
Quoi qu'il en soit, Hlide avait toujours énoncé son envie de développer un autre projet plus performant car, d'après lui, PCsx n'est pas adapté pour un portage sur PSP et ne donnera jamais une réelle satisfaction. Il avait cependant sincèrement envie de participer à la création du Dynarec de Psx-P, se sentant capable de mener deux projets sans parasiter l'un au profit de l'autre.
Ce projet est encore sur le papier et il manque à Hlide quelques informations techniques mais il a su intéresser quelques autres développeurs au projet et la faisabilité nous semble plus qu'évidente.
Notez que PSPGen sera le site officiel de YAPSxP et que nous allons ouvrir un site dédié.
Je laisse la parole à Hlide qui a annoncé ce projet dans notre Forum (ICI)
En effet, las d'attendre l'hypothétique source de Yoshihiro qui m'était promis pour que j'intègre un dynarec, j'ai décidé de partir seul dans l'aventure.
Comment est née cette aventure ?
Le point de départ de mon aventure, c'était de proposer un dynarec qui pourrait s'exécuter au moins deux fois plus vite que la PSX ne pourrait faire, en espérant que le reste de l'émulation ne dépassera pas l'autre moitié des ressources disponibles : bref permettre d'émuler la PSX en fullspeed. Un chalenge, en fait.
Pourquoi je ne reprend pas PCSX ?
C'est simple, ce source n'est absolument pas adapté pour la PSP. Il n'est pas particulièrement optimisé car il est écrit pour du PCs survitaminés en gigahertz qui gèrent naturellement des réels de doubles précisions. Si vous essayez de générer ce code pour la PSP, vous obtiendrez un code monstrueux pour le moins inefficace parce que la PSP ne gère pas nativement les réels à double précision - très utilisés dans le GTE par exemple : la PSP ramera dans les jeux d'action 3D qui font usage massif du GTE. En gros, c'est ce que vous obtenez avec PSX-P.
Que contient actuellement YAPSxP ?
- Le dynarec CORE0 (R3000AF) qui se déclinera en CORE1 puis en CORE2, une fois l'émulation du GTE (en cours) et du COP0 entièrement implémentée.
Que contiendra YAPSxP ?
- La gestion d'un pad standard (déjà écrit mais non testé)
- La gestion des graphismes (GPU, là je tâte sur la manière de procéder)
- La gestion de la vidéo (MDEC, vive le VFPU !)
- La gestion des images (CDR, euh... ça ne va pas me passionner des masses ça...)
Qu'est ce que ne contiendra pas YAPSxP, du moins dans un premier temps ?
- les savestates
- les sauvegardes
- le son (je ne désespère pas de le faire un jour)
- bref, le reste
Voilà, les sources ne seront pas GPL comme j'avais prévu au départ. Je suis dans la vie active donc il ne faudra pas espérer le voir tourner complètement pour noël : il ne servira rien de me demander la date d'une première release. Je ne crois pas que PCSX s'est fait en un mois à l'origine. Or ça ne fait pas un mois que je débute ce projet, mais le dynarec est en très bonne voie et devrait promettre pas mal avec la gestion du GTE et COP0.
NOTE: s'il y a des développeurs talentueux parmi vous qui aimeraient contribuer sur des parties que je ne compte pas implémenter pour la première release, vous pouvez toujours me contacter par PM.
NOTE2:
- CORE0, dynarec qui s'exécute comme un interpréteur, essentiellement pour le besoin de Proof Of Concept et de déboggage.
- CORE1, dynarec reprenant les base du CORE0 mais en exécutant un bloc avec le plus possible d'instructions générées afin de dégager suffisamment de ressource CPU pour le reste à émuler. Déjà testé avec bonheur sur une pré version.
- CORE2, dynarec avec des optimisations supplémentaires qui permettront à l'émulateur d'être un peu plus "intelligent".
-
Commentez cette newsen cliquant ici
-