RSSAmplifier

Blog

Phoboslab

Latest news

phoboslab.orgRSS feed ↗10 posts

Latest posts

How to Make a Nintendo 64 Game in 2026

Two years ago, I was Porting my JavaScript Game Engine to C for No Reason . I have since found a reason: making a new N64 game! The result is Xibalba 64 – a Wolfenstein 3D-like FPS. Modretro agreed to publish the game as a physical launch title for their M64 (a modern N64 clone), complete with cartridge, packaging and manual! Xibalba 64 on Modretro.com This, to my knowledge, is only the second…

Additive Blending on the Nintendo 64

Did you ever wonder why explosions and other effects looked so much cooler on the original PlayStation than they did on the Nintendo 64? “Silent Bomber“ for the PSX “Star Fox 64“ for the N64 The reason is additive blending! Or rather, in the N64 case, the lack thereof. While the N64 actually did support additive blending, it was practically unusable. PSX The PSX supports 4 different blend modes…

A Nintendo 64 Rumble Pak so Bad that it's Good

I m currently working on a game for the Nintendo 64. Naturally, I wanted to support the N64 Rumble Pak. You know, this controller accesorry that gave you “force feedback” in a time where game controllers didn t have a vibration motor built in. What looked like a straight forward endeavor lead me stumbling down a rabbit hole of “not sure if genius or really dumb” -engineering. Libdragon , the truly…

Synthesizing Music from JSON

tl;dr: pl_synth is a tiny music synthesizer for C & JS and an editor (“tracker”) to create instruments and arrangements. You can try it out at phoboslab.org/synth/ The song Microscope by Ferris / Youth Uprising playing in pl_synth Sonant is a brilliant piece of software. It gives you 8 tracks, where each track has its own “instrument” (just a bunch of parameters) and a number of patterns. You fill…

A Simple Archive Format for Self-Contained Executables

The build/run instructions for the example games for high_impact were subtly wrong: make sokol ./build/game_sokol make sokol compiles the Sokol version, converts all assets and puts the results (executable and converted assets) into the build/ directory. So far so good. Where it falls apart is in the next line: ./build/game_sokol . The executable starts just fine, but it s looking in the current…

Porting my JavaScript Game Engine to C for No Reason

high_impact tl;dr: high_impact is small game engine for 2D action games. It s written in C, compiles to Windows, Mac and Linux as well as to WASM for the Web. It s “inspired by” my original Impact JavaScript game engine from 2010. The name high_impact is a nod to a time when C was considered a high level language. MIT licensed, source on github: github.com/phoboslab/high_impact Video from my tweet…

Rewriting wipEout

The source code for the classic PSX launch title wipEout was leaked in 2022. A few month ago I finally sat down to take a look at it. The result is a (nearly) complete rewrite that compiles to Windows, Linux, macOS and WASM. Thanks to WASM and WebGL you can play wipEout right in your browser! I m not the only one who embarked on a path to restore the game. To my knowledge, there are two other…

QOA Benchmark Results and File Format Specification

The specification for the Quite OK Audio Format , announced in a previous blog post , is now finalized. QOA is a lossy audio compression format. Typical audio signals (44100hz, stereo) are encoded into 278 kbits/s, or more precisely 3.2 bits per sample – exactly 1/5 of the bits needed for an uncompressed WAV. The QOA-Specification fits on a single-page PDF . More information and test samples can…

Time Domain Audio Compression at 3.2 bits per Sample

Audio formats typically fall into one of three categories: “lossless” , “complicated” or “bad” . After developing a simple image format last year, I tried to come up with an audio format that fits neither of these categories. In other words: a format that is lossy , simple and quite ok . Naturally, it s called QOA — the Quite OK Audio Format . As hopefully evident by the generous use of Comic…

The QOI File Format Specification

Last month I announced a toy project called QOI — the Quite OK Image Format . It losslessly compresses RGB and RGBA images to a similar size of PNG, while offering a 20x-50x speedup in compression and 3x-4x speedup in decompression. With the help of countless passionate people on Github, we have refined some of the rough edges and specified exactly what a valid QOI file is. QOI is now faster,…