Nearly two decades after the Sony PSP hit shelves, modders have squeezed a Counter-Strike-style first-person shooter onto the aging handheld. The group known as PocketJS has released OpenStrike, an open-source project that brings the core loop of bomb defusal and team combat to the portable console released in 2004. The original PlayStation Portable, launched in Japan on December 12, 2004, and worldwide in 2005, was a technical marvel at the time, boasting a 4.3-inch widescreen display and a custom 333 MHz MIPS processor. But its lack of dual analog sticks made it notoriously difficult to play traditional first-person shooters, forcing developers to rely on the single analog nub and face buttons for aiming.

OpenStrike is not a direct port of Valve’s classic. Instead, it’s a standalone recreation built from scratch, using a custom engine written in the Rust programming language. That engine handles movement, collision detection, bot behavior, weapons, and rendering. The user interface and score tracking are written in TypeScript and JavaScript, running on the QuickJS engine. The choice of Rust is notable because it is a modern systems language known for memory safety and performance, but it is rarely used for homebrew on legacy consoles. The fact that PocketJS managed to compile Rust code to run on the PSP’s MIPS architecture is a technical achievement in itself, requiring a custom toolchain and linker scripts.

The result runs on the original PSP-1000 model at a stable 60 frames per second. It uses only 12 MB of memory and renders at the console’s native resolution of 480 x 272 pixels. Models are simplified, but the visual cues — armed characters, dusty maps, an in-game scoreboard — are instantly familiar to anyone who has played Counter-Strike. The modders have also included bot AI, allowing players to practice against computer-controlled opponents. The weapon arsenal appears to be limited, but it includes recognizable stand-ins for the AK-47 and M4A1, adapted to the PSP’s limited button layout.

PocketJS CS2

OpenStrike’s technical feat on a 22-year-old handheld

The achievement is as much about optimization as it is about nostalgia. The PSP, despite being a landmark device in its time, is severely underpowered by modern standards. Its CPU runs at 333 MHz, and its GPU is a fixed-function chip that lacks programmable shaders. Getting any first-person shooter to run smoothly on it requires careful memory management and stripped-back assets. PocketJS managed this by keeping the polygon count low and relying on a lean Rust backend. The game’s memory footprint of just 12 MB is impressive given that the PSP only has 32 MB of RAM total (with 24 MB available for games after the system reserves). This leaves room for future expansions, such as additional maps or weapon models.

What the mod delivers in practice

According to the modders, OpenStrike includes bot AI, a simple weapon system, and basic scoring — enough to replicate a casual Counter-Strike-like experience on the bus or in a waiting room. There is no official online multiplayer support mentioned in the release, but the project is open-source, meaning the community could expand it. The game’s controls have been adapted to the PSP, using the analog stick for movement and the face buttons for aiming, with the shoulder buttons mapped to fire and reload. This control scheme is similar to other PSP shooters like Medal of Honor: Heroes or SOCOM: U.S. Navy SEALs Fireteam Bravo, which managed to deliver competent FPS experiences despite the hardware limitations.

  • Engine written in Rust: handles movement, collision, bots, weapons, and rendering
  • UI and score system built with TypeScript/JavaScript on QuickJS engine
  • Stable 60 FPS on original PSP-1000 model with 12 MB memory usage
  • Native resolution of 480×272 with simplified but recognizable character and weapon models

Why this matters beyond the hardware

OpenStrike arrives at a time when the PSP modding scene remains active, with homebrew software and custom firmware still being developed nearly two decades after the console’s release. The project shows that even after all these years, developers are willing to push its limits. It also highlights the growing trend of using Rust in game development, even for constrained platforms like the PSP. While the game is too simple for competitive play, it serves as a proof-of-concept for modern coding techniques applied to retro hardware. The open-source nature of the project means that aspiring developers can study the code to understand how to optimize Rust for embedded systems or how to write a basic FPS engine from scratch.

Feature Details
Console Sony PSP-1000 (2004)
FPS target 60 FPS (stable)
Memory usage 12 MB
Resolution 480×272 (native)
Engine language Rust
UI languages TypeScript, JavaScript

PocketJS has not announced any plans for a full multiplayer release or a port to other legacy consoles. The source code is available on their GitHub repository for anyone who wants to tinker with the code or compile it for their own PSP. For now, OpenStrike stands as a technical curiosity — a glimpse of what Counter-Strike might have looked like if it had ever officially landed on Sony’s old portable. It also serves as a reminder that the modding community continues to breathe new life into forgotten hardware, turning what many consider obsolete into a canvas for experimental game development.