Bijna twee decennia nadat de Sony PSP in de winkels lag, hebben modders een first-person shooter in Counter-Strike-stijl op de verouderde handheld weten te persen. De groep die bekendstaat als PocketJS heeft OpenStrike uitgebracht, een opensourceproject dat de kernlus van bomontmanteling en teamgevechten naar de in 2004 verschenen draagbare console brengt. De originele PlayStation Portable, gelanceerd in Japan op 12 december 2004 en wereldwijd in 2005, was destijds een technisch wonder met een 4,3-inch breedbeeldscherm en een aangepaste 333 MHz MIPS-processor. Maar het ontbreken van twee analoge sticks maakte het berucht moeilijk om traditionele first-person shooters te spelen, waardoor ontwikkelaars voor het richten aangewezen waren op de enkele analoge nub en de gezichtsknoppen.
OpenStrike is geen directe port van Valve’s klassieker. In plaats daarvan is het een zelfstandige hercreatie die vanaf nul is opgebouwd, met een aangepaste engine geschreven in de programmeertaal Rust. Die engine regelt beweging, botsingsdetectie, botgedrag, wapens en rendering. De gebruikersinterface en scoretracking zijn geschreven in TypeScript en JavaScript en draaien op de QuickJS-engine. De keuze voor Rust is opmerkelijk omdat het een moderne systeemtaal is die bekendstaat om geheugenveiligheid en prestaties, maar zelden wordt gebruikt voor homebrew op legacy-consoles. Het feit dat PocketJS erin slaagde Rust-code te compileren voor de MIPS-architectuur van de PSP is op zichzelf al een technische prestatie, waarvoor een aangepaste toolchain en linkerscripts nodig waren.
Het resultaat draait op het originele PSP-1000-model op een stabiele 60 frames per seconde. Het gebruikt slechts 12 MB geheugen en rendert op de native resolutie van de console van 480 x 272 pixels. De modellen zijn vereenvoudigd, maar de visuele aanwijzingen — gewapende personages, stoffige maps, een in-game scorebord — zijn direct herkenbaar voor iedereen die Counter-Strike heeft gespeeld. De modders hebben ook bot-AI toegevoegd, zodat spelers kunnen oefenen tegen door de computer bestuurde tegenstanders. Het wapenarsenaal lijkt beperkt, maar bevat herkenbare plaatsvervangers voor de AK-47 en M4A1, aangepast aan de beperkte knopindeling van de PSP.

OpenStrike’s technische prestatie op een 22 jaar oude handheld
De prestatie draait net zozeer om optimalisatie als om nostalgie. De PSP, ondanks dat het in zijn tijd een baanbrekend apparaat was, is naar moderne maatstaven zwaar onderbemand. De CPU draait op 333 MHz en de GPU is een fixed-function-chip zonder programmeerbare shaders. Om welke first-person shooter dan ook soepel te laten draaien, zijn zorgvuldig geheugenbeheer en uitgeklede assets nodig. PocketJS kreeg dit voor elkaar door het polygoonaantal laag te houden en te vertrouwen op een slanke Rust-backend. De geheugenvoetafdruk van slechts 12 MB is indrukwekkend, aangezien de PSP in totaal maar 32 MB RAM heeft (waarvan 24 MB beschikbaar voor games nadat het systeem reserveert). Dit laat ruimte voor toekomstige uitbreidingen, zoals extra maps of wapenmodellen.
Wat de mod in de praktijk levert
Volgens de modders bevat OpenStrike bot-AI, een eenvoudig wapensysteem en basisscore — genoeg om een casual Counter-Strike-achtige ervaring na te bootsen in de bus of in een wachtkamer. Er wordt in de release geen officiële online multiplayer-ondersteuning genoemd, maar het project is opensource, wat betekent dat de community het kan uitbreiden. De besturing van het spel is aangepast aan de PSP, met de analoge stick voor beweging en de gezichtsknoppen voor het richten, terwijl de schouderknoppen zijn toegewezen aan vuren en herladen. Deze besturingsindeling lijkt op andere PSP-shooters zoals Medal of Honor: Heroes of SOCOM: U.S. Navy SEALs Fireteam Bravo, die ondanks de hardwarebeperkingen competente FPS-ervaringen wisten te leveren.
- Engine geschreven in Rust: regelt beweging, botsing, bots, wapens en rendering
- UI en scoresysteem gebouwd met TypeScript/JavaScript op de QuickJS-engine
- Stabiele 60 FPS op het originele PSP-1000-model met 12 MB geheugengebruik
- Native resolutie van 480×272 met vereenvoudigde maar herkenbare personage- en wapenmodellen
Waarom dit verder gaat dan alleen de hardware
OpenStrike verschijnt op een moment dat de PSP-modscène nog steeds actief is, met homebrew-software en custom firmware die bijna twee decennia na de release van de console nog steeds worden ontwikkeld. Het project laat zien dat ontwikkelaars zelfs na al die jaren de grenzen ervan willen opzoeken. Het benadrukt ook de groeiende trend van het gebruik van Rust in game-ontwikkeling, zelfs voor beperkte platforms zoals de PSP. Hoewel de game te simpel is voor competitief spel, dient het als proof-of-concept voor moderne coderingstechnieken toegepast op retro-hardware. Het open-source karakter van het project betekent dat aspirant-ontwikkelaars de code kunnen bestuderen om te begrijpen hoe ze Rust kunnen optimaliseren voor embedded systemen of hoe ze een basis FPS-engine from scratch kunnen schrijven.
| Feature | Details |
|---|---|
| Console | Sony PSP-1000 (2004) |
| FPS-doel | 60 FPS (stabiel) |
| Geheugengebruik | 12 MB |
| Resolutie | 480×272 (native) |
| Enginetaal | Rust |
| UI-talen | TypeScript, JavaScript |
PocketJS heeft geen plannen aangekondigd voor een volledige multiplayer-release of een port naar andere legacy-consoles. De broncode is beschikbaar op hun GitHub-repository voor iedereen die met de code wil sleutelen of deze voor hun eigen PSP wil compileren. Voorlopig staat OpenStrike als een technische curiositeit — een glimp van hoe Counter-Strike eruit had kunnen zien als het ooit officieel op Sony's oude handheld was verschenen. Het dient ook als herinnering dat de modding-community vergeTEN hardware blijft nieuw leven inblazen en wat velen als obsoleet beschouwen omtovert tot een canvas voor experimentele game-ontwikkeling.
Reacties