Pcsx-redux

grumpycoders grumpycoders
Dépôt créer le : 12/12/2018
Forks: 132 Watcher: 0 895
Choisir une liste...
FR

Debugger screenshot

Buy Me a Coffee at ko-fi.comBuy Me a Coffee at ko-fi.com

"Platform"État de construction C'est pas vrai. Windows x64 construireWindows x64 CIAutresWindows Intel 64-bitsAutres Construction Linux x64Linux x64 CIAutresLinux Intel 64-bits (AppImage)Autres Construction MacOS x64MacOS x64 CIAutresMacOS IntelAutres

Pour discuter de cet émulateur, veuillez rejoindre notre serveur Discord :

Discord

Pour discuter du développement de PlayStation 1, du piratage et de l'ingénierie inverse en général, veuillez rejoindre le PSX. Serveur Dev Discord :

Discord

PCSX-Redux

Quoi ?

Le projet PCSX-Redux est une collection d'outils, de recherche, de conception matérielle et de bibliothèques visant à développer et à inverser l'ingénierie sur la PlayStation 1. Le produit principal lui-même, PCSX-Redux, est une autre fourche de l'émulateur Playstation, PCSX. Alors que les travaux sont en cours, l'objectif est à peu près le suivant :

  • Apportez la base de code à des normes de code plus à jour.
  • Débarrassez-vous du système plugin et créez une base de code monolithique unique qui gère tous les aspects de l'émulation de la station de jeux.
  • Écrivez tout sur OpenGL3+/ImGui pour la portabilité et la lisibilité.
  • Améliorer l'expérience de débogage.
  • Améliorer l'expérience de rendu.

Veuillez consulterthe documentation pagespour plus d'informations sur l'émulateur lui-même.

Lestoolsrépertoire contient quelques outils qui peuvent être utilisés pour travailler avec le logiciel PlayStation 1. Leswikirépertoire contient quelques informations de recherche qui ne sont pas directement liées à l'émulateur lui-même. Lesmipsrépertoire contient différents éléments de code ciblant la PlayStation 1, et surtout, le projet OpenBIOS, qui est une implémentation MIPS R3000A BIOS qui peut être utilisé pour démarrer des jeux PlayStation 1 sans avoir besoin d'un BIOS de détail. Et lehardwarerépertoire contient différentes conceptions matérielles qui peuvent être utilisées avec la PlayStation 1.

Où ?

Télécharger la page - Oui. AutresWindows Intel 64-bitsAutres AutresWindows Intel 64-bits CLIAutres AutresLinux Intel 64-bits (AppImage)Autres AutresMacOS IntelAutres AutresMacOS ArmAutres

Remarque:

La version macOS de PCSX-Redux n'est actuellement pas signée avec un certificat de développeur, de sorte que vous pouvez voir un avertissement de sécurité lors de l'ouverture de l'application.

Si vous voyez une boîte de dialogue avec le message :

Le PCSX-Redux est ouvert car Apple ne peut pas le vérifier pour un logiciel malveillant.

Vous pouvez permettre à l'application de courir en faisant l'un des suivants. Vous n'avez besoin de le faire qu'une seule fois pour les copies fraîchement téléchargées de PCSX-Redux.

  • Faites un clic droit sur l'application et sélectionnez Ouvrir. Cela indique une décision explicite de votre part que vous voulez vraiment l'ouvrir, et ajoute un nouveau bouton "Ouvrir" à la boîte de dialogue d'avertissement de sécurité.

  • Alternativement, allez dans les paramètres macOS > Confidentialité et sécurité. Faites défiler vers le bas pour voir une section qui vous permettra d'autoriser l'application.

Comment ça ?

Le code est destiné à être construit en utilisant des compilateurs très modernes. Aussi c'est encore assez expérimental, et beaucoup de choses peuvent casser. Si vous voulez continuer, voici des instructions pour le construire sur Linux, MacOS et Windows. Le code vient maintenant en deux grandes parties: l'émulateur lui-même, etOpenBIOS, qui peut être utilisé comme alternative au commerce de détail, le BIOS protégé par le droit d'auteur.

Obtenir des sources

Le seul emplacement pour la source eston GitHub. Clone récursivement, puisque le projet utilise des sous-modules:

git clone --recursive https://github.com/grumpycoders/pcsx-redux.git

Windows

InstallerVisual Studio 2022 Community Editionutilisant lesDesktop development with C++charge de travail. Ouvrir le fichiervsprojects\pcsx-redux.sln, sélectionnerpcsx-redux -> pcsx-redux, clic droit,Set as Startup Project, et frappéF7pour construire. Le projet suit le paradigme de l'ouverture et de la construction sans pas d'étape supplémentaire, de sorte qu'aucune dépendance spécifique ne devrait être nécessaire, carNuGetprendra soin de les télécharger automatiquement pour vous sur la première construction.

Remarque: Si vous obtenez une erreur disanthresult e_fail has been returned from a call to a com component, vous pourriez avoir besoin de supprimer le fichier .suo dans vsproject/vs, redémarrer Visual Studio et réessayer.

Si vous voulez compiler OpenBIOS ou un autre logiciel PS1, vous devez installer une chaîne d'outils MIPS sur Windows. Vous pouvez le faire en copy-collant ce qui suit dans une commande :

powershell -c "& { iwr -UseBasicParsing https://bit.ly/mips-ps1 | iex }"

Ensuite, ouvrez une nouvelle commande et tapez ce qui suit :

mips install 14.2.0

Pour installer manuellement ce script, vous pouvez le télécharger depuishere, puis l'installer avec la commande suivante:

powershell -ExecutionPolicy Unrestricted -File mips.ps1 self-install C:\path\to\destination

Vous pouvez laisser le chemin d'installation vide pour installer le script dans le dossier Application Data.

Une fois la chaîne d'outils installée, vous pouvez compiler OpenBIOS en utilisantmake -C src/mips/openbios.

Linux

Exécuter./dockermake.sh appimageVous avez besoindockerpour que ça marche. Cela créera uneAppImagefichier, appeléPCSX-Redux-HEAD-x86_64.AppImage, qu'un binaire auto-hôte contenant toutes ses dépendances requises. Sinon, si vous ne voulez pas utiliser Docker, vous pouvez simplement installer les dépendances énumérées ci-dessous et exécutermake.

Dépendances GNU/Linux

Si vous êtes seulement intéressé à compiler le code psx, vous pouvez simplement cloner la repo pcsx-redux, puis installerg++-mipsel-linux-gnu cpp-mipsel-linux-gnu binutils-mipsel-linux-gnupuis suivre les instructions en/pcsx-redux/src/mips/psyq/README.mdpour convertir les bibliothèques PsychQ. Vous pourriez les trouver précompilés en ligne.

  • Dérivés Debian (pour la compilation complète de l'émulateur):
sudo apt-get install -y build-essential git make pkg-config clang g++ g++-mipsel-linux-gnu cpp-mipsel-linux-gnu binutils-mipsel-linux-gnu libcapstone-dev libfreetype-dev libavcodec-dev libavformat-dev libavutil-dev libcurl4-openssl-dev libglfw3-dev libswresample-dev libuv1-dev zlib1g-dev
  • Produits dérivés de l'arche :

Lespcsx-redux-gitpaquet peut être installé depuis l'AUR en utilisant votre helper de choix (par exemple, paru):

paru -S pcsx-redux-git

Alternativement, les étapes suivantes décrivent comment installer les dépendances et compiler manuellement:

sudo pacman -S --needed capstone clang git make pkg-config ffmpeg libuv zlib glfw-x11 curl xorg-server-xvfb imagemagick

L'environnement mipsel peut être installé à partirAUR:cross-mipsel-linux-gnu-binutilsetcross-mipsel-linux-gnu-gccen utilisant votreAURhelperde choix:

trizen -S cross-mipsel-linux-gnu-binutils cross-mipsel-linux-gnu-gcc

Vous pouvez alors simplement entrer le répertoire 'pcsx-redux' et compiler sans utiliser docker avecmake.

Construire OpenBIOS sur Linux peut être fait avec./dockermake.sh -C src/mips/openbios, ou en utilisantg++-mipsel-linux-gnucolis avecmake -C src/mips/openbios. Si vous avez un compilateur de mips différent, vous devrez outrepasser certaines variables, commePREFIX=mipsel-none-elf FORMAT=elf32-littlemips.

MacOS

Vous avez besoin de MacOS Catalina ou plus tard avec la dernière XCode à construire, ainsi que quelqueshomebrewles colis. Exécutez labrew installation scriptpour obtenir toutes les dépendances nécessaires. Il suffit de courirmakepour construire.

Compiler OpenBIOS nécessite un compilateur de mips, que vous pouvez générer en utilisant les commandes suivantes :

brew install nikitabobko/tap/brew-install-path
brew install-path ./tools/macos-mips/mipsel-none-elf-binutils.rb
brew install-path ./tools/macos-mips/mipsel-none-elf-gcc.rb

Ensuite, vous pouvez compiler OpenBIOS en utilisantmake -C ./src/mips/openbios.

Qui ça ?

Je contribuais à la base de code PCSX. Il est très probable qu'un compte sourceforge de la mine ait encore accès à l'ancien dépôt cvs pour PCSX. Il y a longtemps, j'ai contribué au débogueur telnet, et au soutien du port parallèle. Cela signifie que je connais assez bien cette base de codes, et j'ai aussi honte des contributions que j'ai faites il y a plus de 15 ans, comme il faut.

Depuis la création de cette base de codes, plusieurs personnes y ont contribué. VoirAUTHORSfichier pour une liste exhaustive (avec espoir).

Pourquoi ?

Lorsque Sony a publié la Playstation Classic récemment, je suis venu à réaliser deux choses: premièrement, l'état de l'émulation Playstation n'est pas si grand, et deuxièmement, le seul outil de débogage demi-décent encore disponible pour cette console est que le vieux débogueur telnet que j'ai écrit eons il y a, tandis que d'autres émulateurs là-bas pour d'autres consoles ont gagné beaucoup de superpuissances de débogage. Je pense qu'il était temps pour l'émulation Playstation d'atteindre de meilleurs standards en matière de débogabilité. J'ai aussi senti que j'avais une responsabilité pour nettoyer certaines des horreurs que je me suis présentées dans la base de code il y a longtemps, et cela m'a fait pleurer un peu en les regardant. J'espère que je vais mieux en programmation. Espérons.

Situation ?

La base de code nécessite encore beaucoup de nettoyage, et bien que le produit soit utilisable dans son état actuel et que des lots puissent être obtenus avec lui, il y a encore des moyens d'atteindre la première version stable. Si vous voulez aider à la localisation, vous pouvez trouver le projet de traductionon transifex.

Qu'est-ce qui marche ?

  • Récompilateur dynamique (x86-64, support expérimental du bras64)
  • cPU interprété
  • logiciel GPU
  • OpenGL GPU (fortement expérimental, toujours en développement actif)
  • soutien aux améliorations visuelles:
    • Filtrage linéaire et voisin le plus proche (logiciel et rendu OpenGL)
    • Rendu en vraie couleur (Résultats dans de meilleures couleurs, rendu OpenGL seulement)
    • Anti-aliasing (mise en œuvre via MSAA, rendu OpenGL uniquement)
    • Possibilité de rendre les polygones en option comme cadre filaire ou comme sommets (Aide avec débogage, rendu OpenGL seulement)
    • Espérons que plus à venir dans la fonctionnalité, comme l'augmentation de l'échelle, l'échelle entière, PGXP, et plus
  • Visionneuse et débogueur VRAM
  • débogueur MIPS entièrement inclus
  • cartes mémoire
  • gestionnaire de carte mémoire
  • Prise en charge du contrôleur XBox
  • émulation de contrôleur numérique et analogique, émulation de la souris Playstation
  • Scénario de Lua
  • Débogueur SPU
  • éditeur de shader en application et shader crt-lottes intégré
  • uI personnalisable
  • sauver les états

Qu'est-ce qui nécessite encore du travail?

  • correction des bugs restants de rendu OpenGL (pas d'émulation de bits de masque, commandes manquantes, etc) et ajout d'améliorations graphiques
  • code SPU multithreaded approprié
  • une meilleure personnalisation
  • plus générique dynarec
  • accrocher plus de fonctions d'émulateur à Lua
  • voirTODOpour plus

Redux definition

Contributeurs GitHub

nicolasnoble
nicolasnoble
4788 contributions
wheremyfoodat
wheremyfoodat
1 contributions
caldog20
caldog20
347 contributions
johnbaumann
johnbaumann
210 contributions
NotExactlySiev
NotExactlySiev
3 contributions
twevs
twevs
48 contributions
aybe
aybe
43 contributions
spicyjpeg
spicyjpeg
26 contributions
malucard
malucard
26 contributions
njfox
njfox
22 contributions
manz
manz
20 contributions
rocketz
rocketz
17 contributions
TotalCaesar659
TotalCaesar659
2 contributions
JaCzekanski
JaCzekanski
875 contributions
gameblabla
gameblabla
11 contributions
eliasdaler
eliasdaler
10 contributions
mateusfavarin
mateusfavarin
9 contributions
ABelliqueux
ABelliqueux
9 contributions
asmblur
asmblur
8 contributions
xyzz
xyzz
132 contributions
emily-is-my-username
emily-is-my-username
6 contributions
JaberwockySeamonstah
JaberwockySeamonstah
6 contributions
mziab
mziab
6 contributions
acemon33
acemon33
6 contributions
yaz0r
yaz0r
5 contributions
mina-skunk
mina-skunk
5 contributions
JonathanDotCel
JonathanDotCel
5 contributions
mkst
mkst
28 contributions
CloudMracek
CloudMracek
4 contributions