A remarkable fan project has successfully ported a functional clone of Valve's iconic first-person shooter, Counter-Strike, to Sony's 22-year-old PlayStation Portable (PSP) handheld console. Developed by Yifeng Wang, the project, dubbed OpenStrike, achieves this feat with a surprisingly small footprint, reportedly requiring only 12MB of RAM and running at a smooth 60 frames per second.
This impressive technical achievement was made possible by Wang's creation of two custom engines: Pocket3D, a Rust-based 3D engine, and PocketJS, a JavaScript engine designed to support modding. While all eight of Counter-Strike's original maps have been implemented and tested, the current build focuses on elimination matches against bots, with the original game's full buy stages yet to be integrated.
OpenStrike leverages several clever technical optimizations to run efficiently on the PSP's limited hardware. For instance, it employs Binary Space Partitioning to cull non-visible parts of maps, a method that avoids the demands of more modern rendering techniques. Additionally, graphical assets are pre-processed, with lightmaps baked into vertex colors rather than relying on real-time calculations. This approach ensures the game runs smoothly on the PSP's native 480 x 272 resolution display without taxing the hardware excessively.
The project also demonstrates compatibility with the PlayStation Vita, Sony's successor to the PSP, running with native graphics. The Vita offers a larger 5-inch display with a 960 x 544 resolution. For those interested in experimenting with OpenStrike themselves, the project's GitHub distribution is available, though users will need to provide their own copy of Counter-Strike's original asset data. The developer also notes that a browser-based version of Counter-Strike 1.6 is available for those not inclined to use emulation or original hardware.