Nesten to tiår etter at Sony PSP kom i butikkene, har moddere presset et Counter-Strike-lignende førstepersonsskytespill inn på den aldrende håndholdte konsollen. Gruppen kjent som PocketJS har gitt ut OpenStrike, et åpen kildekode-prosjekt som bringer kjerneløkken med bombedesarmering og lagkamp til den bærbare konsollen som ble utgitt i 2004. Den originale PlayStation Portable, som ble lansert i Japan 12. desember 2004 og verdensomspennende i 2005, var et teknisk vidunder den gangen, med en 4,3-tommers widescreen-skjerm og en tilpasset 333 MHz MIPS-prosessor. Men mangelen på doble analoge stikker gjorde det beryktet vanskelig å spille tradisjonelle førstepersonsskytespill, og tvang utviklere til å stole på den enkelte analoge knappen og ansiktsknappene for aiming.
OpenStrike er ikke en direkte port av Valves klassiker. I stedet er det en frittstående gjenskapning bygget fra bunnen av, ved hjelp av en egen motor skrevet i programmeringsspråket Rust. Denne motoren håndterer bevegelse, kollisjonsdeteksjon, botatferd, våpen og rendering. Brukergrensesnittet og poengsporing er skrevet i TypeScript og JavaScript, og kjører på QuickJS-motoren. Valget av Rust er bemerkelsesverdig fordi det er et moderne systemprogrammeringsspråk kjent for minnesikkerhet og ytelse, men det brukes sjelden til homebrew på eldre konsoller. At PocketJS klarte å kompilere Rust-kode til å kjøre på PSP-ens MIPS-arkitektur er en teknisk bragd i seg selv, og krevde en tilpasset verktøykjede og linker-skript.
Resultatet kjører på den originale PSP-1000-modellen med en stabil bildefrekvens på 60 bilder per sekund. Det bruker bare 12 MB minne og rendrer i konsollens native oppløsning på 480 x 272 piksler. Modellene er forenklede, men de visuelle signalene – bevæpnede karakterer, støvete kart, en poengtavle i spillet – er umiddelbart gjenkjennelige for alle som har spilt Counter-Strike. Modderne har også inkludert bot-AI, slik at spillere kan øve mot datamaskinstyrte motstandere. Våpenarsenalet ser ut til å være begrenset, men det inkluderer gjenkjennelige stand-ins for AK-47 og M4A1, tilpasset PSP-ens begrensede knappelayout.

OpenStrikes tekniske bragd på en 22 år gammel håndholdt konsoll
Bragden handler like mye om optimalisering som om nostalgi. PSP, til tross for at den var en milepæl i sin tid, er sterkt underdimensjonert etter moderne standarder. CPU-en kjører på 333 MHz, og GPU-en er en fastfunksjonsbrikke som mangler programmerbare shadere. Å få et førstepersonsskytespill til å kjøre jevnt på den krever nøye minnehåndtering og nedstrippede ressurser. PocketJS klarte dette ved å holde polygonantallet lavt og stole på en slank Rust-backend. Spillets minnefotavtrykk på bare 12 MB er imponerende med tanke på at PSP-en bare har 32 MB RAM totalt (med 24 MB tilgjengelig for spill etter at systemet reserverer). Dette gir rom for fremtidige utvidelser, som flere kart eller våpenmodeller.
Hva modden leverer i praksis
Ifølge modderne inkluderer OpenStrike bot-AI, et enkelt våpensystem og grunnleggende poenggiving – nok til å gjenskape en uformell Counter-Strike-lignende opplevelse på bussen eller i et venterom. Det er ikke nevnt noen offisiell online flerspillerstøtte i utgivelsen, men prosjektet er åpen kildekode, noe som betyr at fellesskapet kan utvide det. Spillets kontroller er tilpasset PSP-en, med analogstikken for bevegelse og ansiktsknappene for aiming, mens skulderknappene er mappet til skyting og omlading. Dette kontrolloppsettet ligner på andre PSP-skytespill som Medal of Honor: Heroes eller SOCOM: U.S. Navy SEALs Fireteam Bravo, som klarte å levere kompetente FPS-opplevelser til tross for maskinvarebegrensningene.
- Motor skrevet i Rust: håndterer bevegelse, kollisjon, boter, våpen og rendering
- UI og poengsystem bygget med TypeScript/JavaScript på QuickJS-motoren
- Stabil 60 FPS på original PSP-1000-modell med 12 MB minnebruk
- Innebygd oppløsning på 480×272 med forenklede, men gjenkjennelige karakter- og våpenmodeller
Hvorfor dette betyr noe utover maskinvaren
OpenStrike lanseres på et tidspunkt der PSP-modding-scenen fortsatt er aktiv, med hjemmebrygget programvare og tilpasset fastvare som fortsatt utvikles nesten to tiår etter konsollens utgivelse. Prosjektet viser at selv etter alle disse årene er utviklere villige til å presse grensene. Det fremhever også den voksende trenden med å bruke Rust i spillutvikling, selv for begrensede plattformer som PSP. Selv om spillet er for enkelt for konkurransespill, fungerer det som et bevis på konseptet for moderne kodeteknikker anvendt på retro-maskinvare. Prosjektets åpen kildekode-basis betyr at aspirerende utviklere kan studere koden for å forstå hvordan man optimaliserer Rust for innebygde systemer eller hvordan man skriver en grunnleggende FPS-motor fra bunnen av.
| Feature | Detaljer |
|---|---|
| Konsoll | Sony PSP-1000 (2004) |
| FPS-mål | 60 FPS (stabil) |
| Minnebruk | 12 MB |
| Oppløsning | 480×272 (innebygd) |
| Motorspråk | Rust |
| UI-språk | TypeScript, JavaScript |
PocketJS har ikke kunngjort noen planer for en full flerspillerutgivelse eller en port til andre eldre konsoller. Kildekoden er tilgjengelig i deres GitHub-repositorium for alle som vil fikle med koden eller kompilere den for sin egen PSP. Foreløpig står OpenStrike som en teknisk kuriositet – et glimt av hvordan Counter-Strike kunne ha sett ut hvis det noen gang offisielt hadde kommet til Sonys gamle håndholdte. Det fungerer også som en påminnelse om at modding-miljøet fortsetter å blåse nytt liv i glemt maskinvare, og gjør det mange anser som utdatert om til et lerret for eksperimentell spillutvikling.
Kommentarer