coffeesoda
coffeesoda on Hacker News
Bypassing Citro3D for raw PICA200 commands cut our per-draw CPU cost by 15x (11 µs to 0.7 µs). After that, there's no single hot function left.
The remaining bottleneck is the o3DS instruction cache. Our code is bigger than the 16KB L1, so the CPU spends a big chunk each frame waiting on instruction fetches.
We build the list for left eye, submit, and then re-submit the list offset for the right. Hadn't tried chaining both into one submission, it improved performance. Thanks so much for the suggestion!
Thanks for taking a look and the great questions. I really appreciate your contributions to the scene.
This is totally fair, and I did learn a lot about agentic development which was my main goal (aside from playing F-Zero X on 3DS). I mean no harm to the community and my attempt is earnest. I learned a few things about the 3DS and N64 architectures and while it's cursory, it was still interesting.
As far as I could tell, this project was legitimately offering rendering techniques not yet used in N64 to 3DS ports, and I felt this documentation might be helpful.
I actually do care very much and would like to actively avoid harming the community. Any sort of resources out there to educate myself further would be appreciated.
I spent $600. $200 a month for the last 3 months. Used for other projects too but this blew my token usage quite often.
This is really great, thank you for sharing. I may borrow this technique for a Playdate project in the future.
It's already done. The race sim is fully deterministic so the consoles exchange controller inputs and run off the same seed. It uses the underlying VS. mode for the scaffolding but changes the screen render to full for each player.
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.
It was, 15+ years ago, when porting N64 games to 3DS was a lucrative market for hired guns. We have the magic 'port' button and this tech just showed how easy it is with severely different architectures & constraints.
Appreciate it, but the info is there for anyone (or their LLM) to learn about the project in a technical sense. Like others have kindly stated, my notes (written by a human, for humans) are in a separate section.
The technical notes are dense and interesting in their own right, but I don't expect anyone not already familiar with the N64 to 3DS port scene to care.
The 3DS has the novelty of 3D. I always wanted to play F-Zero in this form factor and it seemed like a reasonable port to accomplish.
Thanks! As fun as the project is, the scope of it is not lost on me. I wanted it to serve as evidence of the frightening power these recent models have, and make it clear.
Yep, I agree. Further in the notes it's mentioned this probably would've taken a handful of Senior Engineers anywhere from 6 months to 2 years. The range of budget on the project is like $200 to $500k. This was done for peanuts in my spare time. I share both your optimism and pessimism, depending on the day, lol.
Hey, author of the project here! Thanks for posting! It's been a really fun project to work on, and a great way to learn about how to use Claude more efficiently. I'm just a few hours away from posting a big update with:
64dd on original 3DS
Local & Online Multiplayer
QR Code sharing for Custom Courses
I hope ya'll check out the authors notes, post-morterm, and give it a try on your 3DS.
I agree! I've been building this alternative file browser called 'Overlap' which uses Mac's tagging system. Mainly for images. It suggests tags based on Apple's photo classifier & similarity to your own tags. You can also explore data using a visual Venn Diagram.
https://github.com/cruxxxxxx/OverlapBy no means perfect but it's helping solve my moodboarding needs.
Posted by
coffeesoda on Friday September 04, 2026 @10:49AM
from the show-hn dept.
https://cruxxxxxx.github.io/gdx-3ds/postmortem/index.html
Hello HN! Sharing this because I think it's mind blowing, but I was able to port F-Zero X to 3DS using Claude Code. I learned quite a bit about how to guide Claude Code towards completing such a large project, but it's also filled me with quite a bit of dread. Still, I'm amazed that I can play this game in 3D at 60fps.Thanks to Zorkats and inspectredc for their hardwork.
Posted by
coffeesoda on Friday August 28, 2026 @09:52AM
from the github.com dept.