When the first footage of Half-Life running on an original PlayStation was published, it immediately became one of the most talked-about projects in the PS1 homebrew community. Seeing Black Mesa come to life on Sony's 1994 console raised countless questions: Why Half-Life? How difficult is it to fit such an ambitious game into just 2 MB of RAM? And how close is the project to becoming playable?
To answer those questions, we spoke with izzy88izzy (Bonnie Games), the developer behind both the Half-Life port and PSoXide.In this interview, he discusses the technical challenges of bringing Valve's classic to the PlayStation, the design decisions behind the project, the controversy surrounding AI-assisted development, and what the future holds for one of the most ambitious PS1 homebrew projects ever attempted.
Interview with izzy88izzy, the Developer Behind HL-PSX
- I've seen that some developers have been critical of your use of AI during development. How do you feel about those criticisms, and what role do you think AI should play in game development?
I have been coding professionally for about eight years, so my programming experience predates the current generation of AI tools. AI did not give me the idea, define the architecture, perform the hardware tests, or take responsibility for whether the result works. I use it extensively as an accelerator for implementation, code exploration, repetitive work, debugging, and documentation, while I remain responsible for the technical direction, review, integration, and testing. I understand the legitimate concerns surrounding AI, especially provenance, low-quality generated code, and replacing human creative work.
My preferred boundary is to use it where it enhances my ability to build and investigate, rather than using it as a replacement for an artist's creative contribution. PSoXide is completely open about its AI assistance, licensing, and the provenance of code derived from other open-source projects. I am also seeing AI used increasingly for tasks such as decompilation and reverse-engineering assistance. That demonstrates that there is a valuable place for it when it expands what a developer can investigate and create. When the Celeste Classic Collection built with PSoXide went viral, most people understood this distinction, they saw AI as an accelerator for ideas rather than the source of the ideas themselves, that is how I have approached it from the beginning. Without these tools, my long-term dream of building a PS1 Souls-like would have been much harder for one developer to pursue at this scale.
- Why did you choose Half-Life as the first large 3D project to showcase PSoXide?
- What has surprised you the most while bringing Half-Life to the original PlayStation?
The first surprise was how well structured and elegant the original Half-Life code and data organization are. Its systems are separated clearly enough that you can study how individual behaviours fit into the complete game, even though reproducing them on completely different hardware is still an enormous challenge. The second surprise was how every part of the game introduced a different PS1 constraint. Rendering BSP levels, fitting enemies and animations into memory, streaming audio from CD, reproducing scripted sequences, sorting translucent geometry, and maintaining AI all require different compromises.
It is never simply a matter of reducing the texture resolution and polygon count. Half-Life was designed around assumptions that are completely different from a machine with 2 MB of main RAM and 1 MB of VRAM. Real-hardware testing has also been extremely valuable. Some problems appeared only on the console, including geometry corruption and audio state issues. Every hardware discrepancy became a new test for both HL-PSX and the PSoXide emulator.
- Have you ever considered contacting Valve to show them the project? I'd love to know what they would think of it.
I also explained that PSoXide is GPL-licensed and contains no proprietary Sony SDK, PlayStation BIOS, licensed Sony boot data, or Sony-authored code. The proposed distribution model is source-only and bring-your-own-assets. Users would need a legitimate Steam or retail copy of Half-Life, and the Rust tooling would convert their assets locally. I do not intend to distribute Valve's assets, finished disc images, or physical copies. I have asked Valve whether this model is acceptable, whether users may create personal PS1-compatible builds from their own installations, and what naming, trademark, or disclaimer requirements they would prefer. The repository will remain private while I clarify those boundaries. I would also love to know what Valve thinks of the project from a technical perspective.
- The game already includes NPCs, weapons, AI and HUD. Which system are you most proud of implementing so far?
Probably the level traversal and asset-streaming system. Half-Life's campaign is much too large to remain resident in PS1 memory. The port divides the cooked game data into compressed chunks and uses an asset manager to load only the maps, textures, dialogue, enemies, models, and animations required by the current area. The build process audits all 96 maps and their level transitions before creating the disc. It checks the worst-case resident set, including the assets that must survive a transition while the next area is loading. If a combination cannot fit, the build fails rather than allowing a random crash later. Getting that to work within 2 MB of RAM, while keeping transitions bearable from the original CD drive, is probably the clearest example of what PSoXide was built to enable.
- You mentioned the game currently runs at around 10–15 FPS. Where do you think most of the future performance gains will come from?
The new compact model and animation format also groups vertices by bone so the GTE matrix changes less frequently. Viewmodels are another important target because they are always visible and surprisingly expensive relative to the rest of the frame. Some deterministic test scenes already meet the 20 FPS budget, but the goal is a reliable 20 FPS throughout the campaign, including demanding scenes and real hardware. I do not want to reach that number by simply destroying visibility or visual quality, so every optimization is checked through deterministic captures and testing on the console.
-Apart from performance optimizations, what major features are still missing before you consider the project ready for a public release?
The biggest task is ensuring the campaign is genuinely playable from beginning to end, rather than having individual maps and systems that work in isolation. Enemy AI and shooting still need refinement.
Half-Life also has a very rich animation system, and reproducing it within the available memory is difficult. I am using a compact bone-palette format that retains selected source poses and reconstructs the motion through fixed-point interpolation, rather than storing every fully baked frame. The goal is to save RAM without making NPC or weapon movement look robotic. The trigger and scripted-event system is another major area. Half-Life's interconnected triggers, conversations, doors, trains, scripted sequences, and environmental events are a huge part of what made it feel cinematic. Those systems need systematic comparison against the original game.
There is also further work required on weapon behaviour, reload animations, audio continuity across map transitions, enemy animation coverage, water physics, and real-hardware reliability. Before release, I want deterministic campaign tests that can identify where the reimplementation diverges from the original.
- Has working on Half-Life changed PSoXide itself? Have you added features or optimizations that you wouldn't have considered otherwise?
Drastically. Half-Life exposed emulator and hardware-behaviour flaws that never appeared while working on the Celeste collection or my original Souls-like project, Cortex Ignition. Every discrepancy found on real hardware led to a focused hardware test. The result would improve the emulator, which would then expose another smaller inconsistency.
One of the challenges was reliably getting detailed diagnostic information back from an original PlayStation. There is no convenient modern debugging connection available when testing an ordinary burned disc, so I devised a QR-based hardware telemetry system. The test software collects hardware readings, timing information, checksums, and failure details, then displays the structured result as QR codes on the television. Those codes can be photographed or captured and imported back into my development environment, that gives me a reliable bridge between real silicon and the emulator.
Instead of trying to interpret a visual glitch by eye, I can retrieve exact readings from the console, compare them against PSoXide, adjust the emulation, and repeat the same test deterministically. This process has improved areas such as GPU and GTE behaviour, CD-ROM streaming, audio timing, profiling, hardware diagnostics, and the reliability of the SDK and engine. The optimizations required to fit Half-Life into 2 MB of RAM are also directly influencing Cortex Ignition. The compressed asset formats, streaming architecture, visibility systems, fixed-point animation work, and memory-auditing tools are all improvements that original PSoXide games can benefit from. Half-Life has effectively become both a game project and a very demanding validation suite for the entire PSoXide stack.
- Why did you decide that users will need their own Steam copy of Half-Life instead of distributing a ready-made image?
Because the maps, models, textures, sounds, dialogue, music, and visual identity belong to Valve and the original creators. I want to respect that work and avoid redistributing licensed assets. HL-PSX provides the independently written implementation and the means to play the game on different hardware. It does not provide the game content itself.
The goal is for someone with only Rust and a legitimate Half-Life
installation to run one command. The tooling validates the installation,
converts the assets locally, compiles the PS1 executable, and creates a
personal disc image. Those converted assets and the resulting image
remain on that user's machine.
- Once the project becomes open source, what would you like other developers to build or learn from it?
I hope it demonstrates that PSoXide can be taken seriously as a complete development environment, not only for small demos but also for complex games capable of pushing the PlayStation hardware to its limits. I would love developers to study the Rust-only asset pipeline, memory auditing, BSP conversion, CD streaming, fixed-point rendering, animation compression, deterministic regression testing, and the way the game is validated against both an emulator and original hardware.
Developers certainly do not need to make another port, although I would absolutely encourage them if that is what interests them. Ports are fantastic stress tests because they force the hardware and toolchain to confront systems designed without the PS1's limitations in mind. The most exciting outcome would still be seeing people apply those techniques to completely original PS1 projects that previously felt too difficult or too time-consuming to attempt.
- How do you feel about the current state of the PS1 homebrew scene? It seems to be growing faster than ever.
I see PSX-Splash and PSoXide coexisting very naturally because they serve opposite ends of the development spectrum, PSX-Splash makes it much easier for developers already familiar with Unity to begin creating something for the PlayStation. PSoXide is aimed more at developers who want deeper control, larger projects, complex ports, and the ability to push the hardware as far as possible through an integrated Rust SDK, engine, editor, emulator, debugger, profiler, and build pipeline. They are complementary rather than competing approaches.
One makes the platform more accessible, while the other focuses on giving ambitious projects the low-level control and specialized tooling they need. Between them and the other established PS1 toolchains, I think the scene is as strong and approachable as it has ever been.
- You mentioned that your projects are written in Rust. What made you choose Rust over C or C++?
Choosing Rust was actually one of the main driving ideas behind PSoXide. I wanted to see whether a complete, modern development environment for the original PlayStation could be built around Rust instead of recreating the traditional C or C++ workflow. One major advantage is cross-compilation. The PS1 software is compiled as bare-metal, no_std Rust for the mipsel-sony-psx target, while the editor, emulator, debugger, and asset tools compile natively for my ARM64 Mac. The same host code can also target Windows, Linux, and even WebAssembly for the browser version of the emulator.
Rust gives me one language and one ecosystem across all of those very different environments. Cargo is a huge part of that. It handles dependencies, feature flags, build profiles, tests, and target selection in a consistent way, developers do not have to manually coordinate several unrelated build systems or invoke a chain of external tools. Rust is also low-level enough for the kind of aggressive optimization the PlayStation requires. There is no garbage collector or mandatory runtime, and I can directly control memory layouts, fixed-point arithmetic, hardware registers, DMA packets, inline assembly, and volatile memory access.
The GTE implementation, fixed-point types, and transformation mathematics can also be shared or tested on the host before being used on the console. Rust’s no_std support and conditional compilation make this possible without bringing desktop dependencies into the PS1 binary. That cohesion is what enabled PSoXide’s single-stack architecture: emulator, debugger, SDK, engine, editor, asset pipeline, and disc-building tools all belong to the same Rust ecosystem and can reuse the same crates and data contracts. The editor can cook a project, compile it for the PS1, build a disc image, boot it in the embedded emulator, and display the running game in its viewport as one connected operation. C and C++ are absolutely capable of producing excellent PS1 software, and several mature toolchains already prove that.
For me, Rust’s biggest advantage is not simply performance or memory safety in isolation. It is that Rust and Cargo made it practical to treat the entire development environment as one integrated product instead of a collection of disconnected tools. I believe that integration is PSoXide’s most important and most frequently overlooked strength.
Half-Life PSX is still a long way from completion, but the progress shown so far already demonstrates what modern homebrew development can achieve on the original PlayStation. Beyond recreating one of PC gaming's most influential titles, the project is also driving new tools, techniques, and research that could benefit future PS1 developers.
Whether Half-Life eventually reaches the finish line or not, it has already secured its place as one of the most technically ambitious projects the PlayStation homebrew scene has ever seen. And if the pace of development continues, the dream of exploring Black Mesa on an original PS1 may be closer than anyone expected.
You can follow Bonnie Studios and keep up with their latest projects through their official channels. Check out their games on itch.io, follow them on Twitter (X) and Instagram for development updates, or support their work through Buy Me a Coffee.
Make sure to support indie developers like Bonnie Studios and discover more unique projects from the homebrew community.







