Programmer pour la Playstation sous Linux : PsyQ + Wine & Dosbox

Logiciels nécessaires

Kit PsyQ

Une version du kit PsyQ optimisée et prête à être utilisée est disponible sur le site psxdev.net :

Lien Google Docs

Miroir http

Une fois cette archive téléchargée, il faut l'installer sur le disque virtuel de Wine. Si ce n'est pas encore fait, initialisez votre installation de Wine avec la commande suivante :

 winecfg 

Un dossier ~/.wine/drive_c devrait avoir été créé dans votre dossier d'utilisateur.

Placez-y le contenu de l'archive :

unzip PSYQ_SDK.zip -d ~/.wine/drive_c 

Vous pouvez trouver l'image du CD "Programmers Tools" dans sa dernière version dans la section téléchargement de psxdev.net. Vous pouvez également trouver le même contenu dans une archive à l'adresse suivante :

https://psx.arthus.net/Docs/TECHNICAL_REFERENCE_CD_23_08-09-98-noiso.7z

Intégration de Wine

Avant de continuer, il existe quelques options pour améliorer l'intégration de Wine dans le flux de travail. Dans winecfg, onglet "Affichage", désactiver le bureau virtuel le cas échéant.

Pour se débarrasser des messages d'avertissement lors de l'exécution de Wine :

echo "export WINEDEBUG=-all" | tee -a ~/.bashrc 

Clés de registre Windows dans Wine

Téléchargez le fichier de registre pspath-w7.reg à l'adresse suivante : http://www.psxdev.net/forum/viewtopic.php?f=49&t=206 - Mirroir.

Lancez regedit :

wine regedit 

puis dans le menu "Registre" > "Importer un fichier registre..." Sélectionner le fichier téléchargé ci-dessus et validez, puis fermez regedit.

Versions moderne de PSYLIB.EXE, CPE2X.EXE

Certaines applications du dossier ~/.wine/drive_c/psyq/bin sont des exécutables DOS 16-bit et ne peuvent donc être lancés à partir de Wine. Il existe néanmoins des versions 32-bits de PSYLIB.EXE et CPE2X.EXE que vous pouvez télécharger ici :

Faites une copie de sauvegarde des fichiers qu'on s'apprĂŞte Ă  remplacer
```bash
cp ~/.wine/drive_c/psyq/bin/PSYLIB.EXE ~/.wine/drive_c/psyq/bin/PSYLIB.EXE.BAK
cp ~/.wine/drive_c/psyq/bin/CPE2X.EXE ~/.wine/drive_c/psyq/bin/CPE2X.EXE.BAK
```
Placez les fichiers "PSYLIB.EXE" et "CPE2X.EXE" (Ă  renommer au passage CPE2XWIN.EXE ) de l'archive dans le dossier ~/.wine/drive_c/psyq/bin.

mkpsxiso de LameGuy64

Téléchargez la dernière version de mkpsxiso sur le git :

https://github.com/Lameguy64/mkpsxiso/archive/master.zip

Mirroir (2020-06-18)

Version pré-compilée 64bits

DĂ©compressez l'archive et rendez-vous dans le dossier mkpsxiso-master pour compiler :

 cmake . && make 

Un dossier bin_nix devrait apparaitre qui contient le fichier mkpsxiso, Ă  copier Ă©galement dans ~/.wine/drive_c/psyq/bin.

STDINT.h de John Convertino

Téléchargez ou créez le fichier STDINT.h et placez le dans le dossier ~/.wine/drive_c/psyq/include.

/*
 * STDINT based on ansi c for PSYQ
 * 
 * John Convertino
 * 
 */

#ifndef STDINT_H
#define STDINT_H

typedef char int8_t;

typedef short int16_t;

typedef int int32_t;

typedef long long int64_t;

typedef unsigned char uint8_t;

typedef unsigned short uint16_t;

typedef unsigned int uint32_t;

typedef unsigned long long uint64_t; 

#endif

RSDTOOL.EXE Ă  besoin de D3DRM.DLL

Placez le fichier dll d3drm.dll disponible ici :

https://community.pcgamingwiki.com/files/file/3-direct3d-retained-mode-dll-d3drmdll/

Mirroir

dans le dossier ~/.wine/drive_c/psyq/bin/BETA/RSDTOOL.

(Valable Ă©galement sous Windows)

Ajout des éxécutables à votre PATH et permission d'éxécution

Pour pouvoir éxécuter depuis n'importe quel dossier les binaires contenus dans le dossier ~/.wine/drive_c/psyq on ajoute à .bashrc :

echo "## Paths
#psy-q psx compile tools
export PATH=/home/$USER/.wine/drive_c/psyq/bin:$PATH
export PATH=/home/$USER/.wine/drive_c/psyq/cdemu/BIN/:$PATH
export PATH=/home/$USER/.wine/drive_c/psyq/bin/TIMTOOL:$PATH
"|tee -a ~/.bashrc

On ajoute ensuite la permission d'éxécuter ceux-ci :

 chmod +x ~/.wine/drive_c/psyq/bin/*.EXE 
 chmod +x ~/.wine/drive_c/psyq/cdemu/*.EXE 
 chmod +x ~/.wine/drive_c/psyq/bin/TIMTOOL/*.EXE 

Configuration de DOSBOX

Trouvez le fichier de configuration de dosbox dans le dossier ~/.dosbox. À la fin du fichier, dans la section Autoexec, ajoutez les lignes suivantes :

# on monte le disque virtuel de wine comme C:
MOUNT C ~/.wine/drive_c
# on monte le dossier contenant les fichiers source des examples comme D:
MOUNT D ~/PSYQ_Examples
C:
# on se rend dans le dossier des executables
CD psyq\bin
# on vide l'ecran
CLS

Compilation des examples de John Leventino

Télécharger ici les différents programmes d'exemple :

https://github.com/electrobs/PSYQ_Examples

DĂ©compressez l'archive et rendez-vous dans le dossier "sprite", puis ouvrez-y un terminal et utilisez la commande make:


$make

CCPSX.EXE -I ../engine main.c -O3 -Dpsx -c -o main.obj
CCPSX.EXE main.obj -l libpad -l libmcrd -l libsio -l libds -l libeng -l libspu -l libyxml -l libgp -l libbmpm -L ../libbmpm -L ../libgetprim -L ../YXML_PSYQ_PORT -L ../engine -Xo0x80010000 -ospriteTest.cpe,spriteTest.sym,spriteTest.map
CPE2XWIN.EXE spriteTest.cpe
Program Counter = 0x80012c34
rm -rf main.obj spriteTest.cpe spriteTest.sym spriteTest.map

Un fichier spriteTest.exe est apparu. Ouvrez l'exécutable dans un émulateur comme ePSXe ou chargez le directement dans la mémoire de la PSX via un câble série/USB.

Autres exemples Ă  compiler

Vous pouvez trouver de nombreux exemples Ă  compiler ici : http://www.psxdev.net/forum/viewforum.php?f=64

Notes & Sources

Version originale : https://github.com/electrobs/PSYQ_Examples

PsyQ environment : http://www.psxdev.net/downloads.html

reg files by Shadow : http://www.psxdev.net/forum/viewtopic.php?f=49&t=206

psylib 32-bits by LameGuy64 : http://www.psxdev.net/forum/viewtopic.php?f=69&t=1137

cpe2x 32-bits by Orion_ : http://onorisoft.free.fr

mkpsxiso by LameGuy64 : https://github.com/lameguy64/mkpsxiso

STDINT.h by John Convertino : https://github.com/electrobs/PSYQ_Examples/tree/master/PSYQ_MODS

PSXdev forums PsyQ examples : http://www.psxdev.net/forum/viewforum.php?f=64