Nästan två decennier efter att Sony PSP släpptes har moddare lyckats pressa in en Counter-Strike-inspirerad förstapersonsskjutare på den åldrande handhållna konsolen. Gruppen som kallas PocketJS har släppt OpenStrike, ett öppen källkod-projekt som tar kärnloopen med bombdesarmering och lagstrider till den bärbara konsolen som släpptes 2004. Den ursprungliga PlayStation Portable, som lanserades i Japan den 12 december 2004 och världen över 2005, var ett tekniskt underverk vid den tiden, med en 4,3-tums widescreenskärm och en anpassad 333 MHz MIPS-processor. Men bristen på dubbla analoga spakar gjorde den ökänd svår att spela traditionella förstapersonsskjutare på, vilket tvingade utvecklare att förlita sig på den enda analoga nubben och ansiktsknapparna för att sikta.
OpenStrike är inte en direkt portning av Valves klassiker. Istället är det en fristående återskapning byggd från grunden, med en anpassad motor skriven i programmeringsspråket Rust. Den motorn hanterar rörelse, kollisionsdetektion, botbeteende, vapen och rendering. Användargränssnittet och poängräkningen är skrivna i TypeScript och JavaScript, och körs på QuickJS-motorn. Valet av Rust är anmärkningsvärt eftersom det är ett modernt systemprogrammeringsspråk känt för minnessäkerhet och prestanda, men det används sällan för homebrew på äldre konsoler. Att PocketJS lyckades kompilera Rust-kod för att köras på PSP:ns MIPS-arkitektur är en teknisk bedrift i sig, vilket kräver en anpassad verktygskedja och länkskript.
Resultatet körs på den ursprungliga PSP-1000-modellen i en stabil 60 bilder per sekund. Det använder bara 12 MB minne och renderar i konsolens inbyggda upplösning på 480 x 272 pixlar. Modellerna är förenklade, men de visuella ledtrådarna – beväpnade karaktärer, dammiga kartor, en resultattavla i spelet – är omedelbart igenkännbara för alla som har spelat Counter-Strike. Moddarna har också inkluderat bot-AI, vilket låter spelare träna mot datorstyrda motståndare. Arsenalen av vapen verkar vara begränsad, men den innehåller igenkännbara ersättare för AK-47 och M4A1, anpassade till PSP:ns begränsade knapplayout.

OpenStrikes tekniska bedrift på en 22 år gammal handhållen konsol
Bedriften handlar lika mycket om optimering som om nostalgi. PSP:n, trots att den var en milstolpe i sin tid, är kraftigt underdimensionerad enligt moderna mått. Dess CPU körs i 333 MHz, och dess GPU är ett fastfunktionschip som saknar programmerbara shaders. Att få någon förstapersonsskjutare att köra smidigt på den kräver noggrann minneshantering och nedskalade tillgångar. PocketJS lyckades med detta genom att hålla polygonantalet lågt och förlita sig på en slimmad Rust-backend. Spelets minnesavtryck på bara 12 MB är imponerande med tanke på att PSP:n bara har 32 MB RAM totalt (med 24 MB tillgängligt för spel efter att systemet reserverat). Detta lämnar utrymme för framtida expansioner, som ytterligare kartor eller vapenmodeller.
Vad modden levererar i praktiken
Enligt moddarna innehåller OpenStrike bot-AI, ett enkelt vapensystem och grundläggande poängräkning – tillräckligt för att replikera en avslappnad Counter-Strike-liknande upplevelse på bussen eller i väntrummet. Det nämns inget officiellt onlinemultiplayersstöd i utgåvan, men projektet är öppen källkod, vilket innebär att communityn skulle kunna utöka det. Spelets kontroller har anpassats till PSP:n, med den analoga spaken för rörelse och ansiktsknapparna för att sikta, med axelknapparna mappade till skjut och omladda. Detta kontrollschema liknar andra PSP-skjutare som Medal of Honor: Heroes eller SOCOM: U.S. Navy SEALs Fireteam Bravo, som lyckades leverera kompetenta FPS-upplevelser trots hårdvarubegränsningarna.
- Motor skriven i Rust: hanterar rörelse, kollision, botar, vapen och rendering
- UI och poängsystem byggt med TypeScript/JavaScript på QuickJS-motorn
- Stabil 60 FPS på original PSP-1000-modellen med 12 MB minnesanvändning
- Ursprunglig upplösning på 480×272 med förenklade men igenkännbara karaktärs- och vapenmodeller
Varför detta spelar roll bortom hårdvaran
OpenStrike kommer vid en tid då PSP-modding-scenen fortfarande är aktiv, med homebrew-programvara och anpassad firmware som fortfarande utvecklas nästan två decennier efter konsolens lansering. Projektet visar att även efter alla dessa år är utvecklare villiga att pressa dess gränser. Det belyser också den växande trenden att använda Rust i spelutveckling, även för begränsade plattformar som PSP. Även om spelet är för enkelt för tävlingsspel, fungerar det som ett proof-of-concept för moderna kodningstekniker tillämpade på retrohårdvara. Projektets öppen källkod innebär att blivande utvecklare kan studera koden för att förstå hur man optimerar Rust för inbyggda system eller hur man skriver en grundläggande FPS-motor från scratch.
| Funktion | Detaljer |
|---|---|
| Konsol | Sony PSP-1000 (2004) |
| FPS-mål | 60 FPS (stabilt) |
| Minnesanvändning | 12 MB |
| Upplösning | 480×272 (ursprunglig) |
| Motorns språk | Rust |
| Gränssnittsspråk | TypeScript, JavaScript |
PocketJS har inte meddelat några planer på en fullständig multiplayer-release eller en portning till andra äldre konsoler. Källkoden finns tillgänglig på deras GitHub-repository för alla som vill experimentera med koden eller kompilera den för sin egen PSP. För närvarande står OpenStrike som en teknisk kuriositet – en glimt av hur Counter-Strike hade kunnat se ut om det någonsin officiellt hade landat på Sonys gamla portabla konsol. Det fungerar också som en påminnelse om att modding-gemenskapen fortsätter att blåsa nytt liv i bortglömd hårdvara, och förvandlar det många anser vara föråldrat till en duk för experimentell spelutveckling.
Kommentarer