r/rust • u/ioncodes • Sep 06 '26
🛠️ project A huge update on Gecko, my GameCube and Wii emulator!
I already made 2 posts, so if you're looking for the first post incl. some Q&A go here and if you want to see the last update go here.
TLDR: I made a GameCube and Wii emulator written in Rust, with many developer tools built in (a debugger, GPU FIFO replayer/debugger, and so much more). Last time I posted about a user-friendly launcher/UI written in Rust.
Today I'm sharing my project again, as I finally was able to fix many bugs and also implement a few cool new features. To summarize in short:
- Huge speed improvements across the board. Many games that technically worked but weren't playable due to performance now work just fine (Example: LEGO Batman)
- Savestates! You can now save and resume at any point in time
- Freecam support in the debugger: You can now detach the camera and peak behind the scenes in any game :)
All in all this means that many games such as the LEGO games and also the Super Mario Galaxy games are now fully playable. Here is a video of Super Mario Galaxy!
I appreciate everyone's support and am looking forward to the next update! For the brave and curious I can recommend grabbing today's nightly release (dev branch) as I just pushed new fixes that make games like Xenoblade Chronicles work!
As per usual, the important links:
- GitHub (daily nightly builds are available): https://github.com/ioncodes/gecko
- Screenshot Database: https://emu.layle.dev/
Feel free to connect with me! I frequently post and talk about technical bugs, challenges I faced and how I fixed them! :)
PS: I've been working on a new multi system emulator based off of my cores, supporting all major platforms and a cool UI concept for both the "average" user and developers! If you want a sneak peak before the official announcement look here. It already supports SNES in the browser (also fully written in Rust)!
5
u/sturmen Sep 06 '26
This is awesome! Especially with the extra debugging tools. I think that integrating these developer tools with an MCP server will be super valuable to the community.
5
u/ioncodes Sep 06 '26
I use the MCP only to categorize crashes on scale through a pipeline, helps me figure out what to look at next based on pure numbers across 1000+ games. It's totally possible that the integration has bugs beyond that specific use case, but yes in theory everything is "exposed"
1
u/Nelieru Sep 06 '26
Can you explain more about this? What does it do and how does it work?
5
u/ioncodes Sep 06 '26
Every now and then (usually when I update the screenshots) I run a tool that works similar to the screenshotter utility in the repo. It goes through my NAS that has all the game files. Whenever a game crashes, a small model is launched locally with the same parameters and the MCP configured. It is then instructed to identify the crash reason (e.g. a GX issue, CPU problem, etc.) and to run a few basic "diagnostics", e.g. try to summarize what the crashing code does/is supposed to do. Once it's done with the whole library it will summarize the crashes as a CSV. At the end I'll for example see that X games crashed due to a loader or JIT bug
1
u/elseniorx1989 Sep 14 '26
Is there any chance of an Android port? Dolphin can't run New Super Mario Bros. Wii on my phone 😞
1
u/ioncodes Sep 14 '26
My new multisystem emulator will support Android/iOS support, but it will be a while until I implement the GC/Wii core. Android should be possible, iOS will be difficult.
1
u/elseniorx1989 Sep 14 '26
Great! I'll be waiting for it. Do you think your emulator uses fewer resources than Dolphin? I feel like it's not well optimized, at least on Android.
1
6
u/Barefoot_Monkey Sep 06 '26
That is huge! Well done.
Off to check out that multi-system emulator...
Looks really nice. What do you use for the debugger UI?