logoalt Hacker News

coffeesoda • today at 3:16 AM • 0 replies • view on HN

Good instinct, the bottleneck is on the CPU side though. The PICA200 is an immediate-mode GPU not a tiler.

Other F-Zero X ports feed the N64 display lists to an interpreter, command by command, with the T&L on CPU. Pre-v1.0 of this port took that approach but did some double buffering on another CPU core.

When porting to Old 3DS, that other core wasn't an option, so we had to make better batch calls to the GPU. It ended up being that now we walk that list the first time and group triangles that share the same material, and moved the position & rotation transformations to the GPU too.

Rather than creating the mesh for tracks out of the spline on the fly, it also precomputes at the start of the race.

I'm fairly certain this is a pretty novel implementation for a N64 to 3DS port.

Most of these optimizations are just for race elements, which is why some of the menus are still pretty laggy.