Émulateur Red Omega PS2

Bonjour à tous les amateurs de jeux rétro (les jeux pour Play Station 2 entrent dans cette catégorie). Je soumets pour votre évaluation mon projet d'émulateur de clone PCSX2 - Red Omega. En bref sur le projet - il s'agit d'un clone PCSX2 pour Windows 10 avec une interface simplifiée, un seuil d'entrée minimum et la mise en œuvre du contrôle via l'interface utilisateur "Touch".



Je vous préviens que la qualité de l'image est «arrachez les yeux». Cracher sur l'écran est inutile. Je l'ai essayé - ça n'aide pas :)


Je crois qu'un lecteur qui a regardé sous la coupe aimerait connaître les détails. mais dans des limites raisonnables.


Eh bien, commençons par une interface utilisateur simple


Le projet PCSX2 original a une interface complexe (à mon avis). Oui, c'est pratique dans le processus de débogage des correctifs pour les jeux - mais un utilisateur non professionnel introduit une énorme quantité de fonctionnalités inutiles dans une stupeur. Dans mon projet, j'ai décidé de créer une interface simple et intuitive. Par conséquent, toutes les fonctionnalités de débogage sont supprimées et la configuration de l'émulateur est définie dans le code pour prendre en charge la plupart des jeux.


Le prochain changement dans l'interface est la transition sous la conception "Touch" - une interface "moyenne" dans le style Win95:



remplacé par "mosaïque" (pour la plupart), qui vous permet d'interagir avec le programme comme un "pointeur de souris", et en touchant l'écran tactile:
Veuillez noter qu'il ne s'agit PAS d'une application du Windows Store. Cependant, l'imitation est très proche.
Par conséquent, la prise en charge du contrôle des jeux via «l'écran tactile» est incluse. En plus de l'image, des commandes de contrôleur de jeu semi-transparentes ont été ajoutées. Mais en même temps, vous pouvez le refuser en passant au "Game Pad" physique


L'instant suivant - la gestion ou plus précisément la gestion des ressources


Un autre point est la commodité de la gestion des fichiers d'image de jeu, du BIOS, des cartes mémoire et des sauvegardes. Le projet PCSX2 original présente des options limitées pour gérer les images de jeux et leurs téléchargements. Pour améliorer cette fonctionnalité, téléchargez des BIOS, des images de jeux et enregistrez-les, consacrant près d'un tiers de l'espace de l'interface utilisateur.


Les BIOS sont chargés à la fois à partir de fichiers séparés et à partir d'archives zip. Des informations complètes sont présentées sous forme de texte visuel:



Les images de jeu sont téléchargées à partir de fichiers ISO et vérifiées pour la compatibilité - si auparavant l'image de fichier du jeu a été vérifiée PENDANT le lancement de l'émulateur, ce projet vérifie le type d'image, son nom correct et sa jouabilité séparément du processus de lancement du jeu:



La gestion de l'épargne est fondamentalement modifiée. Le projet PCSX2 d'origine a une limite de 10 emplacements de fichiers par jeu, sans possibilité de déterminer la date et la progression de la sauvegarde:



Ce projet vous permet de créer jusqu'à 100 fichiers de sauvegarde par partie pendant le gameplay. Chaque fichier de sauvegarde est identifié par la date d'enregistrement, la durée de la session de jeu enregistrée, capturée par l'image à l'écran:




En plus des sauvegardes créées, lorsque le jeu est arrêté ou que le programme est fermé, l'état actuel de l'émulateur est enregistré dans le fichier "Autosave" - ​​cela vous permet de continuer le jeu au prochain démarrage de cet émulateur, même si l'état du jeu précédent n'a pas été enregistré par erreur. De plus, le temps de chargement des données à partir des sauvegardes a été réduit - le projet PCSX2 d'origine nécessite le chargement du BIOS, d'une image de jeu, puis vous devez sélectionner un fichier de sauvegarde - le temps de chargement peut aller jusqu'à 30 secondes. Ce projet réduit le temps de chargement enregistré à 3-5 secondes.


Les cartes mémoire de ce projet peuvent être gérées de manière plus "flexible":



Les cartes mémoire peuvent être créées pendant le fonctionnement de l'émulateur et commutées d'une carte mémoire à une autre pour charger ou enregistrer des données dans les jeux pendant le processus de jeu. Les noms des fichiers créés des cartes mémoire sont générés en fonction du nom du jeu et du numéro d'identification unique du disque - pour chaque jeu en cours, seules les "propres" cartes mémoire sont disponibles.


Contrôleur de jeu


Ce projet vous permet de changer le type de contrôle dans les jeux du tactile au contrôleur de jeu physique:




Capturer


Les fonctions de capture d'images et de vidéos sont implémentées dans le projet PCSX2 d'origine sous une forme limitée et sans étude approfondie de l'interface utilisateur, cette fonctionnalité peut être manquée. Dans ce projet, j'ai réécrit la solution pour capturer l'image du gameplay à l'aide du nouveau SDK et placé les boutons de contrôle nécessaires au-dessus de l'image du jeu:



La qualité de compression des images individuelles est à un niveau fixe. La qualité de l'enregistrement du processus de jeu vidéo "en direct" peut être configurée dans une plage de 10% à 99%. Les noms des fichiers créés sont générés en fonction du nom du jeu et de la valeur de l'heure actuelle. Le gameplay vidéo et audio est enregistré dans des formats compatibles avec les fichiers mp4. Un panneau de contrôle séparé vous permet de visualiser des images et des vidéos pendant une pause:





Paramètres généraux


En plus de contrôler le gameplay, il existe un panneau de paramètres généraux: "Mode d'affichage", "Mode de contrôle", "Définir la fenêtre par dessus tout", "Qualité de compression vidéo", "Désactiver le mode écran large", "Traduction actuelle". Le "mode d'affichage" vous permet de basculer la zone de dessin du jeu du plein écran au "fenêtré"



Le "mode de commande" vous permet de commuter le circuit de commande du bouton au toucher




Les autres paramètres sont faciles à comprendre.


Conclusion


Ce projet a parcouru un long chemin par rapport à la version originale de l'émulateur PCSX2, mais n'a toujours pas laissé le statut de la version de test. Le code source est publié sur GitHub: OmegaRed et CodeProject: émulateur Omega Red PS2 .

Source: https://habr.com/ru/post/fr415851/


All Articles