Casi dos décadas después de que la Sony PSP llegara a las tiendas, los modders han logrado meter un shooter en primera persona al estilo Counter-Strike en la veterana portátil. El grupo conocido como PocketJS ha lanzado OpenStrike, un proyecto de código abierto que traslada el bucle central de desactivación de bombas y combate por equipos a la consola portátil lanzada en 2004. La PlayStation Portable original, lanzada en Japón el 12 de diciembre de 2004 y en todo el mundo en 2005, era una maravilla técnica para la época, con una pantalla panorámica de 4,3 pulgadas y un procesador MIPS personalizado de 333 MHz. Pero su falta de dos sticks analógicos hacía que fuera notoriamente difícil jugar a shooters en primera persona tradicionales, lo que obligaba a los desarrolladores a depender del único nub analógico y los botones frontales para apuntar.
OpenStrike no es un port directo del clásico de Valve. En su lugar, es una recreación independiente construida desde cero, usando un motor personalizado escrito en el lenguaje de programación Rust. Ese motor se encarga del movimiento, la detección de colisiones, el comportamiento de los bots, las armas y el renderizado. La interfaz de usuario y el seguimiento de la puntuación están escritos en TypeScript y JavaScript, ejecutándose en el motor QuickJS. La elección de Rust es notable porque es un lenguaje de sistemas moderno conocido por su seguridad de memoria y rendimiento, pero rara vez se usa para homebrew en consolas antiguas. El hecho de que PocketJS lograra compilar código Rust para que se ejecutara en la arquitectura MIPS de la PSP es un logro técnico en sí mismo, ya que requiere una cadena de herramientas y scripts de enlazador personalizados.
El resultado se ejecuta en el modelo original PSP-1000 a unos estables 60 fotogramas por segundo. Usa solo 12 MB de memoria y renderiza a la resolución nativa de la consola, 480 x 272 píxeles. Los modelos están simplificados, pero las señales visuales —personajes armados, mapas polvorientos, un marcador en el juego— resultan instantáneamente familiares para cualquiera que haya jugado a Counter-Strike. Los modders también han incluido una IA de bots, lo que permite a los jugadores practicar contra oponentes controlados por ordenador. El arsenal de armas parece limitado, pero incluye equivalentes reconocibles del AK-47 y la M4A1, adaptados al limitado diseño de botones de la PSP.

La hazaña técnica de OpenStrike en una portátil de 22 años
El logro tiene tanto que ver con la optimización como con la nostalgia. La PSP, a pesar de ser un dispositivo emblemático en su época, se queda muy corta según los estándares modernos. Su CPU funciona a 333 MHz y su GPU es un chip de función fija que carece de shaders programables. Conseguir que cualquier shooter en primera persona funcione con fluidez en ella requiere una gestión cuidadosa de la memoria y recursos reducidos al mínimo. PocketJS lo logró manteniendo bajo el recuento de polígonos y confiando en un backend ligero en Rust. La huella de memoria del juego, de solo 12 MB, es impresionante teniendo en cuenta que la PSP solo tiene 32 MB de RAM en total (con 24 MB disponibles para juegos después de lo que reserva el sistema). Esto deja espacio para futuras expansiones, como mapas adicionales o modelos de armas.
Qué ofrece el mod en la práctica
Según los modders, OpenStrike incluye IA de bots, un sistema de armas sencillo y puntuación básica, suficiente para replicar una experiencia casual similar a Counter-Strike en el autobús o en una sala de espera. No se menciona ningún soporte oficial de multijugador en línea en el lanzamiento, pero el proyecto es de código abierto, lo que significa que la comunidad podría ampliarlo. Los controles del juego se han adaptado a la PSP, usando el stick analógico para el movimiento y los botones frontales para apuntar, con los botones superiores asignados a disparar y recargar. Este esquema de control es similar al de otros shooters de PSP como Medal of Honor: Heroes o SOCOM: U.S. Navy SEALs Fireteam Bravo, que lograron ofrecer experiencias FPS competentes a pesar de las limitaciones del hardware.
- Motor escrito en Rust: gestiona movimiento, colisiones, bots, armas y renderizado
- Interfaz y sistema de puntuación creados con TypeScript/JavaScript en el motor QuickJS
- 60 FPS estables en el modelo original PSP-1000 con 12 MB de uso de memoria
- Resolución nativa de 480×272 con modelos de personajes y armas simplificados pero reconocibles
Por qué esto importa más allá del hardware
OpenStrike llega en un momento en que la escena de modding de PSP sigue activa, con software homebrew y firmware personalizado aún en desarrollo casi dos décadas después del lanzamiento de la consola. El proyecto demuestra que, incluso después de todos estos años, los desarrolladores están dispuestos a llevar sus límites al extremo. También resalta la creciente tendencia de usar Rust en el desarrollo de videojuegos, incluso para plataformas limitadas como la PSP. Aunque el juego es demasiado simple para el juego competitivo, sirve como prueba de concepto para técnicas de programación modernas aplicadas a hardware retro. La naturaleza de código abierto del proyecto significa que los desarrolladores aspirantes pueden estudiar el código para entender cómo optimizar Rust para sistemas embebidos o cómo escribir un motor FPS básico desde cero.
| Característica | Detalles |
|---|---|
| Consola | Sony PSP-1000 (2004) |
| Objetivo de FPS | 60 FPS (estables) |
| Uso de memoria | 12 MB |
| Resolución | 480×272 (nativa) |
| Lenguaje del motor | Rust |
| Idiomas de la interfaz | TypeScript, JavaScript |
PocketJS no ha anunciado planes para un lanzamiento multijugador completo ni un port a otras consolas antiguas. El código fuente está disponible en su repositorio de GitHub para cualquiera que quiera trastear con el código o compilarlo para su propia PSP. Por ahora, OpenStrike se mantiene como una curiosidad técnica: un vistazo de cómo podría haber lucido Counter-Strike si alguna vez hubiera llegado oficialmente a la antigua portátil de Sony. También sirve como recordatorio de que la comunidad de modding sigue dando nueva vida a hardware olvidado, convirtiendo lo que muchos consideran obsoleto en un lienzo para el desarrollo experimental de videojuegos.
Comentarios