Fonctionnement général :
Si vous avez déjà créé un homebrew en C ( sinon vous devriez

), vous devriez avoir au moins entendu parler du PSPSDK. Celui-ci, diffusé sur le dépôt SVN de ps2dev, contient une grand nombres de fonctions, de sceIo¹ à pspgu pour gérer l'affichage graphique en 3D. Une grande partie de ces fonctions sont natives, gérées par le noyau et utilisables directement en assembleur. Vous aurez d'ailleurs remarqué que les auteurs de la documentation ne savent pas tout du fonctionnement de ces fonctions (
http://psp.jim.sh/pspsdk-doc/group__Fil ... 110671d9e7 ).
Étant donné que les jeux utilisent ces fonctions, une partie du code de l'émulateur consiste à réécrire ces fonctions afin de les rendre utilisables. Ce concept, consistant à émuler les appels systèmes et non le matériels, est appeler « HLE ».
Commits le 02/08/09 :
1225 : Pour améliorer la compatiblité de jcpsp, et en particulier du jeu Iron Man, une des fonctions du pspsdk (
http://psp.jim.sh/pspsdk-doc/group__Sys ... 8ff00eee20 ) permettant de déterminer la taille du plus grand bloc de mémoire libre a été changée. En effet, le fonctionnement de certains jeux fait qu'il est préférable de renvoie un mutltiple de 16. ( FIXME : Pourquoi ? )
1226 : Une nouvelle fonction du PSPSDK a été implémentée, ce qui bien sûr devrait permettre aux jeux l'utilisant de fonctionner. Celle-ci (
http://psp.jim.sh/pspsdk-doc/group__Thr ... 1f41c9bdbe ) permet de récupérer plusieurs informations sur le status du système : le status ( si même les auteurs de la documentation mettent un point d'interrogation, ne vous attendez pas à ce que quelqu'un d'autre --- encore moins moi --- vous fournisse une explication à son sujet ), le nombre de changements de status, etc.
Commits le 03/08/09 :
1127 :
- Un petit changement dans l'interface. l'interface est redessinée pour éviter les glitche...
- Il est maintenant possible de prendre une screenshot en appuyant sur F5.
Commits le 04/08/09 :
1128 : Changement du nom des screenshots prises par jpcsp.
[Game code]-Shot-[nombre].png
Quand le game code n'est pas présent, comme c'est le cas avec les homebrews, celui-ci sera remplacé par JPCSP.
Commits le 05/08/09 :
1129 : Dorénavant, dans le module sceMpeg, quand la taille du paquet est nulle, on n'effectue plus de division --- ce qui entrainerait bien évidemment une division par zéro.
Commits le 06/08/09 :
1130 : un attribut discId a été rajouté. L'idée n'est pas neuve, mais le code n'a été fait que depuis qu'un module en avait bien besoin. Quant à ce module, il s'agit bien sûr des screenshots.
Commits le 07/08/09 :
1131 : Des tests pour les rotations sont commits. Pour ce faire, ils essayent de changer les coordonnées des textures.
Notes :
1 : I/O signifie « input/output », soit « entrée/sortie ». Écrire dans un fichier correspond à utiliser un flux de sortie, tandis que le lire correspond à utiliser un flux d'entrée. De même, afficher quelque chose dans un terminal correspond en fait à écrire dans la sortie standard (stdout), ou éventuellement dans le flux des erreurs (stderr).