AngleZero changelog
v0.4.0 · Sep 29, 2026
Runs on official firmware, rebuilds the course's scenery, and adds grip and drift driving modes.
Install
- Download
AngleZero.0.4.0.zip. - Unzip it at the root of the memory stick, replacing
PSP/GAME/AngleZero/. - Launch from Game → Memory Stick.
Runs on official and custom firmware. Tested on both.
Highlights
- Official firmware support. The EBOOT is encrypted, so no custom firmware is needed.
- Boot time: 16 s → 1.5 s on hardware.
- Grip and drift modes. 50% more power: 0–100 km/h in 4.7 s, down from 6.7 s.
- New scenery: summit car park, a city in the valley, ridgelines, pines, textured road and hillside.
- New engine sound: a six-speed gearbox with turbo.
Driving
- Grip mode: traction control, stability control and a steering limiter.
- Drift mode starts from a handbrake stab or a slide past ~11°. The aids switch off, and a drift assist acts only outside a 14–43° corridor.
- Handbrake plus counter-steer mid-slide switches the drift to the other side instead of spinning the car.
- The car collides with the rail at its full footprint, not at its centre point. Cars no longer clip through the rail.
- Chase camera pulls back less at speed.
Course and scenery
- Summit car park start with seven bays, vending machines, a lamp and a parapet. The title shot is held there.
- City in the basin: street grid, towers, expressways with traffic, a train, a broadcast tower and aircraft beacons.
- Three rings of moonlit ridgelines; lit valley towns and mist.
- Procedural road and grass textures; moonlight and lamplight baked into the terrain and trees.
- Pines as alpha-tested billboards, planted in stands.
- Two painted lanes: double yellow through bends, speed bars, 急カーブ markings and road wear.
- W-beam guard rail with posts, reflectors, chevron boards and corner mirrors, all lit by the headlights.
- Cut banks on the inside of hard bends.
- Wet road option on the title screen (Up/Down), with lamp reflections on the tarmac. Handling is unchanged.
- Cones in a few deliberate groups instead of every 11 nodes.
- Stars and city lights drawn as single pixels, so they no longer twinkle. Scanline overlay removed.
- Dimmer headlight beams.
Audio
- Engine: firing-pulse synthesis through exhaust resonances, with clutch slip, rev flare, limiter and turbo whistle.
- Tyre squeal, road rumble, wind and rail impact sounds.
- The menu music now loops.
XMB
- New icon and background, drawn from the real course.
- New animated icon (
ICON1) and info panel (PIC0).
Controls
| Action | Before | Now |
|---|---|---|
| Handbrake | ○ | R |
| Front view | △ | L (hold) |
Fixes
- Frame rate dropped to 30 fps with drift smoke. It now holds 60 fps.
- HUD text disappeared during long drifts.
- Lamps now sit on each car's lens. 22 of 27 cars were corrected.
Cars
The same 27 cars as 0.3.0. Credits and licences: docs/cars.md.
v0.3.0 · Aug 21, 2026
Twenty-seven cars, and a loader that no longer cares how many there are.
0.2.0 held every car on the stick in memory at once, in a fixed 6 MB arena. Seven cars filled 5.7 MB of it and the eighth was refused — the limit was not the console's memory but a decision about how to spend it. This release reads one car at a time, so the number of cars in CARS/ is now bounded by the memory stick rather than by the build.
Streaming car loader
- Cars are read on demand, 32 KB per frame, into one of two slots: the car being driven, and the one arriving. A load that fails or arrives truncated never touches the car on screen — you keep the one you had, with the fault named.
- A black silhouette stands in while a car streams. It is carried at the front of each file, so it arrives in the first chunk and the shape appears within a frame of pressing left or right. Pressing again cancels the read in flight.
- Resident memory falls from 6 MB to 2.5 MB in a shipping build, on a 24 MB machine.
- The size limit is now per car (1.25 MB), not per stick. The asset compiler enforces the same constant the console does, so an oversized car is refused at build time rather than turning into a car that silently fails to appear.
Measured on hardware: a 32 KB chunk reads consistently in 4,438 µs — 7.4 MB/s, about 27% of a 60 Hz frame — putting a car on screen in roughly 29 frames. The figure had to come off a real memory stick; under emulation the "stick" is a directory on an SSD and every chunk size looks free.
Cars
Seven to twenty-seven. Adding one is still copying a file into CARS/ — no rebuild.
| Car | Author | Licence |
|---|---|---|
| Abarth 500 | Ddiaz Design | CC-BY-NC-SA-4.0 |
| Audi RS6 Avant | Ddiaz Design | CC-BY-NC-SA-4.0 |
| BMW E30 (Pandem) | Ddiaz Design | CC-BY-4.0 |
| BMW M5 Sedan | Ddiaz Design | CC-BY-NC-SA-4.0 |
| Citroën Xsara WRC | Ddiaz Design | CC-BY-NC-SA-4.0 |
| Dodge Charger R/T 1969 | Ddiaz Design | CC-BY-NC-SA-4.0 |
| Exotic Rides W70 | Ddiaz Design | CC-BY-NC-SA-4.0 |
| Honda Civic EJ (ViS Racing) | Ddiaz Design | CC-BY-NC-SA-4.0 |
| Honda Civic Type R EK9 | Ddiaz Design | CC-BY-NC-SA-4.0 |
| Honda NSX (Rocket Bunny) | Ddiaz Design | CC-BY-NC-SA-4.0 |
| Lada 2109 Sputnik | Bogdan Styopin | CC-BY-4.0 |
| Lamborghini Murciélago (LB Silhouette Works) | Ddiaz Design | CC-BY-NC-SA-4.0 |
| Lancia Delta HF Integrale Evo 2 | Ddiaz Design | CC-BY-NC-SA-4.0 |
| Mazda RX-7 (VeilSide C-II) | Ddiaz Design | CC-BY-NC-SA-4.0 |
| McLaren 720S (LB-Works) | Ddiaz Design | CC-BY-4.0 |
| Mini Cooper S (F56) | Ddiaz Design | CC-BY-NC-SA-4.0 |
| Nissan 350Z (Rachel's) | Ddiaz Design | CC-BY-NC-SA-4.0 |
| Nissan Silvia S14 (Vertex Ridge) | Ddiaz Design | CC-BY-NC-SA-4.0 |
| Toyota RAV4 (2010) | Teddy168 | CC-BY-4.0 |
| Volkswagen Golf R32 Mk4 | Ddiaz Design | CC-BY-NC-SA-4.0 |
Each is compiled from a scan of 77,000 to 1,400,000 triangles down to about 24,000, keeping its own proportions, wheel sizes, lamp positions and handling. Full credits and source links: docs/cars.md.
Lighting
- Every car has reversing lamps, derived from its tail lamps rather than guessed at, and sized rather than fixed.
- Hand-placed lamps calibrated against measured ones. Where a model does not name its lenses the detector falls back to position, which had put the Golf R32's tail lights under the driver's elbow; the R32, the Civic and the S14 are corrected.
- All 162 lamps across 27 cars are verified mirrored and at the correct end of the car.
Rendering and asset fixes
- Wheels spin about their own axle rather than about the world X axis — visible on any car whose hubs are not exactly on the axis.
- Silhouettes rebuilt from the outline rather than the surface: built from body and glass only, welded and simplified as one shape instead of piece by piece, and with wheels generated from the radius already measured. 5–7 KB per car, under 1% of the file, down from 22 KB. Worst coverage miss across the fleet is 1.3%.
- The Golf R32 has its tyres back — a part named
TARMAC_TYRE_WALLreads like scenery and is a sidewall; dropping it had put the car out on bare rims. - The 350Z's glass texture is no longer believed, and the RX-7's bodywork is corrected.
Tooling
azviewrenders a compiled car offline in seconds under the console's own draw order, culling and 16-bit depth precision, so faults can be diagnosed without an emulator.scripts/cars.shlists and builds cars;scripts/silhouette_check.pyandscripts/lights_check.pycheck every car for silhouette coverage and lamp placement.- Each car's config now records the source model it was built from.
Install
Download AngleZero.0.3.0.zip and unzip it at the root of the memory stick. Everything in the archive is already where it belongs:
PSP/GAME/AngleZero/EBOOT.PBP PSP/GAME/AngleZero/CARS/*.azcar
It then appears under Game → Memory Stick. Requires custom firmware; stock firmware will not launch unsigned homebrew.
Upgrading from 0.2.0: copy the PSP folder over the one already there. Your record in ms0:/PSP/SAVEDATA/ANGLEZERO/RECORD.BIN carries over. Cars from 0.2.0 remain readable — the asset format version is unchanged — but the copies in this archive are rebuilt with silhouettes and the lighting fixes above, so replacing them is worthwhile.
Controls
| Action | Button |
|---|---|
| Throttle | ✕ (or D-pad Up) |
| Brake | □ (or D-pad Down) |
| Handbrake | ○ |
| Steer | D-pad Left/Right, or the analog nub |
| Look at the front of the car | △ (held) |
| Pause menu | START |
| Change car (title screen) | D-pad Left/Right |
| Start run | ✕ |
Full changelog: https://github.com/ItsNoHax/AngleZero/compare/v0.2.0...v0.3.0
v0.2.0 · Aug 15, 2026
Seven real cars. 0.1.0 had one, built out of boxes in code; this one loads actual models off the memory stick and lets you pick between them on the title screen.
The cars
| Car | Author | Licence |
|---|---|---|
| BMW 3-Series E36 | Black Snow | CC-BY-4.0 |
| BMW 5-Series E39 | Black Snow | CC-BY-4.0 |
| Mercedes-Benz 190E (W201) | Dave Love | CC-BY-4.0 |
| Toyota AE86 Trueno | StanBox | CC-BY-NC-4.0 |
| Nissan Skyline R34 GT-R | OUTPISTON | CC-BY-NC-SA-4.0 |
| Nissan Silvia S15 (Vertex Edge) | Ddiaz Design | CC-BY-NC-SA-4.0 |
| Volkswagen Golf R Mk7.5 | Ddiaz Design | CC-BY-NC-SA-4.0 |
Each one comes off a 400,000-triangle scan and is compiled down to something a PSP can draw at 60 Hz, keeping its own proportions, wheel sizes, lights and handling. They are separate files in CARS/, so adding another is copying a file — no rebuild. Full credits and source links are in docs/cars.md.
Also: updated lots of visual glitches and bugs.
Gameplay
- START pauses the run and opens a menu: Continue, Restart, Select another car. Nothing moves behind it — no physics, no clock, no camera.
- Hold △ to swing the camera round and look back at the front of the car, the same view the chase takes by itself when you reverse.
- On the results screen, ✕ runs again and □ takes you back to pick a different car.
Install
Download AngleZero.0.2.0.zip and unzip it at the root of your memory stick. Everything in it is already in the place it belongs:
PSP/GAME/AngleZero/EBOOT.PBP PSP/GAME/AngleZero/CARS/*.azcar
It then appears under Game → Memory Stick. Requires custom firmware; stock firmware will not launch unsigned homebrew.
Upgrading from 0.1.0: copy the PSP folder over the one already there. Your record in ms0:/PSP/SAVEDATA/ANGLEZERO/RECORD.BIN carries over.
Controls
| Action | Button |
|---|---|
| Throttle | ✕ (or D-pad Up) |
| Brake | □ (or D-pad Down) |
| Handbrake | ○ |
| Steer | D-pad Left/Right, or the analog nub |
| Look at the front of the car | △ (held) |
| Pause menu | START |
| Change car (title screen) | D-pad Left/Right |
| Start run | ✕ |
| From the results: run again / change car | ✕ / □ |
The build carries no diagnostics: the capture tooling, debug overlay and render-state overrides are behind a devtools feature that is off, and the release script refuses to package a build that has them.
v0.1.0 · Aug 7, 2026
A night-time downhill drift game for the Sony PSP, written in Rust. One car, one
road: 3.5 km of switchbacks down Sekira Pass, generated at boot rather than
shipped as a mesh. Gravity does the driving — the car builds speed downhill with
no throttle at all — and points come from holding a slide, with the guard rails
there to take them away again.
Install
Download AngleZero.0.1.0.zip and unzip it at the root of your memory stick. The
archive holds one file, already in the right place:
PSP/GAME/AngleZero/EBOOT.PBP
It then appears under Game → Memory Stick.
Requires custom firmware. Stock firmware will not launch unsigned homebrew.
Controls
| Action | Button |
|---|---|
| Throttle | ✕ (or D-pad Up) |
| Brake | □ (or D-pad Down) |
| Handbrake | ○ |
| Steer | D-pad Left/Right, or the analog nub |
| Reset to road | △ |
| Start run / restart | ✕ / △ |
Best time, score and combo persist to ms0:/PSP/SAVEDATA/ANGLEZERO/RECORD.BIN.
What is in it
The full descent, the drift scoring and combo, the chase camera, HUD and
minimap, synthesised engine and tyre audio, XMB icon, background and music, and
save data. Tested on real hardware, not only in an emulator.
The build carries no diagnostics: the capture tooling, debug overlay and
render-state overrides are behind a devtools feature that is off, andscripts/release.sh refuses to package a build that contains them.
Notes
Track generation, physics, scoring, the camera and the screen flow are ordinary
Rust with no PSP dependency, covered by 167 host tests. The centreline and the
vehicle model are pinned to golden files so a drifting constant fails a test
rather than quietly moving the road.
