F-Zero X on Nintendo 3DS
Posted by bpierre 3 days ago
Comments
Comment by coffeesoda 3 days ago
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.
Comment by cynicalkane 3 days ago
Comment by ryan_n 3 days ago
Comment by coffeesoda 3 days ago
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.
Comment by testernews 3 days ago
Comment by autoexec 3 days ago
Comment by echelon 3 days ago
Do you not see what you're doing? How do you know they don't think about things? You're attacking with unfounded accusations, and it's incredibly uncivil.
Why are you in this AI thread spewing hate?
Think about it a second.
This is an AI thread.
You do not have to be here.
Comment by jonhohle 2 days ago
Comment by desterothx 2 days ago
Comment by opan 3 days ago
Comment by regularfry 3 days ago
Comment by TuxSH 3 days ago
One striking example is "No debugger, no stdout" which is baffling considering I implemented a GDB stub in the very first version of Rosalina which I released like... 10 years ago?
Stdout redirection is supported by both 3dslink and GDB stuff on 3ds, too.
I don't mean to be a party pooper - and the projects fullfills its role as a showcase of how far pure vibecoding can take someone - but it's this can of thing that gives the "absolutely no AI" crowd grounds to stand on.
Comment by coffeesoda 2 days ago
Comment by echelon 3 days ago
Comment by CursedSilicon 3 days ago
Tell the slop bot it's wrong about something and it just starts berating you "get used to it!" "I'm the future!"
Comment by dormento 2 days ago
This is a real risk. The copyright washing machine is an average of our collective "spoken consciousness", and in turn it influences the way we express ourselves, then it ends up inside the next training slopdate. Real organic human reasoning will eventually be as valuable as low-alpha steel was for a long time, at least till the background levels drop. AI businesses are raiding libraries for "sunken knowledge", the similarity is uncanny.
Comment by echelon 3 days ago
People using AI are constantly showing off net new things to the world.
Antis are using the same arguments from 2022 and aren't showing us anything good or cool that they've done. They just complain.
Y'all need to do something worth talking about. This mindset you have is exhausting. Antis somehow find a way of entering every pro-AI conversation and breathing down our necks with hate and misery.
I don't like these bleak views and I don't want to interact with this kind of fist shaking and ground gazing while I'm trying to have a good time using all the new toys. This post was a celebration, and yet here we are again. Why even show up? What is so worth it to you to come in here and complain?
Let us reinvent the web. Let us cure cancer. And instead of chanting "slop" in every corner this is discussed, you can go to Matrix or Mastodon or live on a farm or cut the cords or something. Just don't dump on every single thing we do. You can sit this out on the sidelines.
This thread is about cool AI results - why are you even here? This is our celebration, not an open invitation to complain.
Comment by jonhohle 2 days ago
You know what people learn when they vibe code a decomp? How LLMs work.
If I come across a hacker news front page story, I want it to be something interesting about a topic. Seeing a topic I’m deeply familiar with actually be another vibe coding project is exhausting and click bait. I can’t learn anything more about what I was trying to learn about in the first place.
Publishing this on GitHub is actively harmful to the RE and decomp communities. Vibe coders don’t care and probably don’t even know. They haven’t talked to the EFF, read USPCO opinions on fair use, followed VGHF’s attempts to expand rights, or anything that will legally move the needle forward. They’re just dumping mountains of copyright infringement under terms previously associated with completely legal activity.
Comment by coffeesoda 2 days ago
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.
Comment by jonhohle 2 days ago
I do apologize however. I inferred from the repo that the decomp was done by LLM, but I’m glad to see it seems like an older, pre-LLM decomp.
I have mixed feelings about modern LLM implementations of older game SDKs, but generally support it. Though copyright and licensing there can be tricky as well. Caveat emptor.
Comment by echelon 2 days ago
Comment by CursedSilicon 2 days ago
Comment by msephton 2 days ago
Comment by echelon 2 days ago
I've wanted to do this but had no time to learn this arcane science. Life is simply too short.
This is opening the world up to more people. You shouldn't be mad at them for coming into your hobby.
People want this. They shouldn't have to do it the way you bless or anoint.
Comment by jonhohle 2 days ago
Your perspective is like saying LLMs have had no impact on mathematicians. Or dirt bikes don’t have impact on hiking trails.
Comment by echelon 2 days ago
Electricity shut down hunting whales for oil, cars shut down horse whip makers, etc. That's just progress. Like shopping malls, Blockbuster, buffet restaurants -- everything has its time.
There are more games being decompiled now than ever before, and the leap in accessibility is tremendous. While this may dilute your community and its practices, and while it may look like an Eternal September, it is bringing orders of magnitude more people into the fold. And that's worth a lot more than you're giving it credit.
Math, science, bio, and certainly CS and software engineering are going to change. That's progress. Nothing should stay the same forever.
I'm happier to see the world morph into something exciting during my lifetime rather than have slow and modest progress up until I die. I feel a bit like the people who were born early enough to witness the Wright brothers and who ultimately lived to see people walk on the moon. I'm glad tech is doing something like that rather than just having decades of uninspiring incrementalism.
I'm sorry you don't share the same outlook, but I promise there's a silver lining in this if you look more closely.
People are going to get closer and closer to owning their technology. The value of code is plummeting, and that means that in time these claims over our software will erode to nothing.
I would focus your energy on making sure we have open weights parity with the foundation models. We need to have a seat at that table. That is the real threat to our freedom and future, not petty IP squabbles or software rights.
Comment by CursedSilicon 2 days ago
It's not like we're insulting your work
Comment by aculver 3 days ago
Comment by coffeesoda 3 days ago
Comment by dpedu 2 days ago
Comment by Amekedl 2 days ago
Comment by Tepix 3 days ago
Comment by xeyownt 3 days ago
Something that the bot overlord didn't even think to say in its superdense page intro.
That's the problem with AI-generated text. They have no idea of what proper context is.
Comment by ChrisRR 3 days ago
If I ever talk about Ocarina of Time, I don't feel the need to specify what platform it was on, or now that I realise, that it was even a Zelda game
Comment by latexr 3 days ago
You assume wrong. I would be interested and I didn’t know by name what the platform was. I never played F-Zero but I’m familiar with it thanks to Super Smash Bros.
> If I ever talk about Ocarina of Time, I don't feel the need to specify what platform it was on
Considering there’s a remake with the same name on the Switch 2, you do need to specify.
Comment by rustyhancock 3 days ago
Comment by grumbel 3 days ago
Comment by refactor_master 2 days ago
Except, nobody does that. So that’s not a real number.
Comment by jrmg 2 days ago
People regularly blow through all their Claude Pro tokens every week. It’s relatively easy to do.
Comment by coffeesoda 2 days ago
Comment by daniel_rh 3 days ago
Comment by coffeesoda 3 days ago
Comment by daniel_rh 3 days ago
Since the Playdate doesn't have any of the sprite rendering hardware that made the gameboy both underpowered in compute and overpowered in graphics at the time, some of the tricks may be unnecessary.
I suppose you could do some kind of shift of a whole row of the framebuffer easily with a memmove sort of operation. The gameboy's shift registers and the per sprite drawing are what really made this both difficult and possible at such a slow CPU clock speed. The playdate CPU is about 40x faster than that on the gameboy, so probably all these kinds of tricks and more would work just fine.
Comment by bpierre 3 days ago
Comment by cdnutter 3 days ago
Don’t get me wrong, the 3DS is a gem of a console, and it harks back to when Nintendo put more thought into what they released instead of just another Mario sports game; but since the Switch is so much more powerful, I’d expect ports to that be more of a priority.
Comment by Gigachad 3 days ago
The 3DS is a fun pocketable form factor which a lot of people already own and easy to permanently mod on any firmware version or hardware revision.
Comment by BoorishBears 3 days ago
At this point most people getting a 3DS are probably doing so specifically to jailbreak it
Comment by circuit10 2 days ago
Comment by sunaookami 3 days ago
Comment by coffeesoda 3 days ago
Comment by cubefox 3 days ago
Comment by jamesrcole 3 days ago
Comment by cubefox 2 days ago
For example, if you play games on a virtual screen using a VR helmet, you pretty much always want the game to use stereoscopic 3D, because playing it without it would be strictly worse. (Okay, it would consume less GPU resources, which is good, but that would be the only difference, and this would also hold for things like lower resolution or frame rate.)
Comment by tempest_ 3 days ago
Comment by tourmalinetaco 3 days ago
Comment by prophesi 3 days ago
[1] https://github.com/lovebrew/nest
edit: compared it to the GBA homebrew scene since it's a large dedicated community to derive pros and cons between the two from. Switch is still receiving updates from Nintendo to brick your system.
Comment by ivraatiems 3 days ago
The 3DS is still a _console_, purpose built and limited in what it can do. It is also approachably easy to find a good one in working order, and still has the vibe of a retro console.
Also, for fun, I suspect.
Comment by shoobiedoo 3 days ago
Comment by ChrisRR 2 days ago
Comment by p1necone 3 days ago
Comment by Revisional_Sin 2 days ago
I imagine that's a big part of it.
Comment by ndesaulniers 3 days ago
I had been working on getting claude to port Super Metroid to the Gameboy Advance. Was mostly curious if the GBA could run it at full speed. Looks like, yes!
Comment by cubefox 2 days ago
Comment by neuroelectron 3 days ago
Comment by Gigachad 3 days ago
Comment by Yahivin 3 days ago
Comment by grumbel 3 days ago
Comment by ivraatiems 3 days ago
I don't think the productivity gains from AI can be ignored for contexts like this. It's what they're best at.
I just hope it goes to good uses (more ports of fun games, more interoperability and opennesS) instead of bad ones (firing humans instead of retasking them), and that hope feels faint.
Comment by coffeesoda 3 days ago
Comment by starkparker 3 days ago
If you don't have a real dollar cost then can you tell us how much it actually cost in peanuts?
Comment by The_Blade 3 days ago
Comment by theYipster 3 days ago
Comment by Gigachad 3 days ago
Comment by ivraatiems 3 days ago
Comment by bakugo 3 days ago
This of course assumes it's something anyone would consider worth paying a human to do (it's not).
Comment by ivraatiems 3 days ago
Comment by coffeesoda 3 days ago
Comment by matthewfcarlson 3 days ago
Comment by kingofspain 3 days ago
Now I’ll have to do it and see how they compare. I purposefully avoided playing it again during development so it’ll be most curious.
Comment by sara_kumodeck 3 days ago
Comment by coffeesoda 3 days ago
Comment by VCFundedGenYer 2 days ago
Comment by peggigulgow 3 days ago
Comment by coffeesoda 3 days ago
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.
Comment by TuxSH 3 days ago
Have you, or rather your agents, tried to identify which CPU functions were the bottlenecks (e.g. in citro3d, perhaps)?
I find it surprising that your stuff is CPU bound. Are you doing one command-list submission for _both_ eyes (with one drawcall for each)? This should be relatively simple, only require viewproj matrix changes and avoid CPU<>GPU roundtrips.
If not, you are going to hit IRQ dispatching costs as well as shardmem dispatching costs as well as other costs.
Comment by coffeesoda 2 days ago
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.
Comment by huangdihd 2 days ago
Comment by 26d0 3 days ago
Comment by pizzathyme 3 days ago
Comment by echelon 3 days ago
Comment by qwerpy 3 days ago
Comment by woozlewuzzle 3 days ago
I'm guessing well-adjusted level headed people are off doing more productive things.
Comment by yoz-y 3 days ago
Comment by opan 3 days ago
Comment by echelon 3 days ago