Près de deux décennies après la sortie de la Sony PSP, des moddeurs ont réussi à faire tourner un FPS dans le style de Counter-Strike sur la console portable vieillissante. Le groupe connu sous le nom de PocketJS a publié OpenStrike, un projet open-source qui transpose la boucle de gameplay centrale du désamorçage de bombe et du combat en équipe sur la console portable sortie en 2004. La PlayStation Portable originale, lancée au Japon le 12 décembre 2004 et dans le monde en 2005, était une merveille technique à l'époque, avec un écran large de 4,3 pouces et un processeur MIPS personnalisé cadencé à 333 MHz. Mais son absence de doubles sticks analogiques rendait le jeu aux FPS traditionnels notoirement difficile, obligeant les développeurs à se rabattre sur le seul nub analogique et les boutons pour viser.
OpenStrike n'est pas un portage direct du classique de Valve. Il s'agit plutôt d'une recréation autonome construite à partir de zéro, utilisant un moteur personnalisé écrit en langage Rust. Ce moteur gère les déplacements, la détection des collisions, le comportement des bots, les armes et le rendu. L'interface utilisateur et le suivi des scores sont écrits en TypeScript et JavaScript, exécutés sur le moteur QuickJS. Le choix de Rust est notable car c'est un langage système moderne connu pour sa sûreté mémoire et ses performances, mais il est rarement utilisé pour le homebrew sur les consoles anciennes. Le fait que PocketJS ait réussi à compiler du code Rust pour qu'il tourne sur l'architecture MIPS de la PSP est en soi un exploit technique, nécessitant une chaîne d'outils et des scripts de liaison personnalisés.
Le résultat tourne sur le modèle PSP-1000 original à une fréquence stable de 60 images par seconde. Il n'utilise que 12 Mo de mémoire et s'affiche à la résolution native de la console, 480 x 272 pixels. Les modèles sont simplifiés, mais les repères visuels — personnages armés, cartes poussiéreuses, tableau des scores en jeu — sont immédiatement familiers pour quiconque a joué à Counter-Strike. Les moddeurs ont également intégré une IA de bots, permettant aux joueurs de s'entraîner contre des adversaires contrôlés par ordinateur. L'arsenal d'armes semble limité, mais il comprend des équivalents reconnaissables de l'AK-47 et du M4A1, adaptés à la disposition limitée des boutons de la PSP.

L'exploit technique d'OpenStrike sur une console portable vieille de 22 ans
La réussite tient autant à l'optimisation qu'à la nostalgie. La PSP, bien qu'appareil emblématique en son temps, est gravement sous-dimensionnée selon les standards modernes. Son CPU tourne à 333 MHz et son GPU est une puce à fonctions fixes dépourvue de shaders programmables. Faire tourner fluidement un FPS dessus exige une gestion rigoureuse de la mémoire et des ressources allégées. PocketJS y est parvenu en maintenant un faible nombre de polygones et en s'appuyant sur un backend Rust léger. L'empreinte mémoire du jeu, seulement 12 Mo, est impressionnante quand on sait que la PSP ne dispose que de 32 Mo de RAM au total (avec 24 Mo disponibles pour les jeux après réservation du système). Cela laisse de la marge pour de futures extensions, comme des cartes ou des modèles d'armes supplémentaires.
Ce que le mod apporte en pratique
Selon les moddeurs, OpenStrike inclut une IA de bots, un système d'armes simple et un score basique — de quoi reproduire une expérience décontractée à la Counter-Strike dans le bus ou une salle d'attente. Aucun support multijoueur en ligne officiel n'est mentionné dans la publication, mais le projet est open-source, ce qui signifie que la communauté pourrait l'étendre. Les contrôles du jeu ont été adaptés à la PSP, avec le stick analogique pour les déplacements et les boutons pour viser, les gâchettes étant assignées au tir et au rechargement. Ce schéma de contrôle est similaire à celui d'autres FPS PSP comme Medal of Honor: Heroes ou SOCOM: U.S. Navy SEALs Fireteam Bravo, qui parvenaient à offrir des expériences FPS convenables malgré les limitations matérielles.
- Moteur écrit en Rust : gère les déplacements, les collisions, les bots, les armes et le rendu
- Interface et système de score développés avec TypeScript/JavaScript sur le moteur QuickJS
- 60 FPS stables sur le modèle PSP-1000 d'origine avec 12 Mo d'utilisation mémoire
- Résolution native de 480×272 avec des modèles de personnages et d'armes simplifiés mais reconnaissables
Pourquoi cela compte au-delà du matériel
OpenStrike arrive à un moment où la scène du modding PSP reste active, avec des logiciels homebrew et des firmwares personnalisés encore développés près de deux décennies après la sortie de la console. Le projet montre que même après toutes ces années, les développeurs sont prêts à repousser ses limites. Il met également en lumière la tendance croissante à utiliser Rust dans le développement de jeux, même pour des plateformes contraintes comme la PSP. Bien que le jeu soit trop simple pour le jeu compétitif, il sert de preuve de concept pour les techniques de codage modernes appliquées au matériel rétro. La nature open-source du projet signifie que les développeurs en herbe peuvent étudier le code pour comprendre comment optimiser Rust pour les systèmes embarqués ou comment écrire un moteur FPS basique à partir de zéro.
| Fonctionnalité | Détails |
|---|---|
| Console | Sony PSP-1000 (2004) |
| Cible FPS | 60 FPS (stable) |
| Utilisation mémoire | 12 Mo |
| Résolution | 480×272 (native) |
| Langage du moteur | Rust |
| Langues de l'interface | TypeScript, JavaScript |
PocketJS n'a annoncé aucun projet de sortie multijoueur complète ou de portage vers d'autres consoles anciennes. Le code source est disponible sur leur dépôt GitHub pour quiconque souhaite bricoler le code ou le compiler pour sa propre PSP. Pour l'instant, OpenStrike se présente comme une curiosité technique — un aperçu de ce à quoi Counter-Strike aurait pu ressembler s'il avait officiellement débarqué sur l'ancienne portable de Sony. Cela rappelle aussi que la communauté du modding continue de redonner vie à du matériel oublié, transformant ce que beaucoup considèrent comme obsolète en un canevas pour le développement expérimental de jeux.
Commentaires