17 comments

[ 3.4 ms ] story [ 39.0 ms ] thread
[flagged]
Those uninformed C++ bashes are misplaced
> Those uninformed C++ bashes are misplaced

I'm a current daily Rust user and former C++ user. The opinion is formed of my own experience.

That's why they chose C++ over Rust, because your experience lacks writing a Switch emulator
So why don't you rewrite the emulator in rust, then? Seems like it would be right up your alley, and rust is only used to create inferior rewrites of existing software anyway.
You were so close to having a witty reply but then bungled it in the last part.
They started from pre-existing projects: Citra (3DS), Dolphin (GameCube, Wii), PPSSPP (PSP), Gekko (GameCube)

Dolphin is 19 years old, Rust is 12 years old.

A used Nintendo switch is less expensive than a gaming computer.

>A used Nintendo switch is less expensive than a gaming computer. Clearly you never used the 'Mum I need a good computer for school' trick.
(comment deleted)
With regards to 1, yes. yuzu is a fork of Citra, a 3DS emulator written in C++ that was initially released in 2014.

This was done because the 3DS and the Switch are similar in some ways (for example: the Switch OS, Horizon, is a rewritten version of the 3DS OS).

As a fellow rust enthusiast, it’s disappointing to see comments like this. It’s not healthy to assume that all projects should be rust just because.

This is a continuation of a project that started before Rust was 1.0, but even if it wasn’t, being based in C++ isn’t bad.

Decisions aren’t made in single tech vacuums. Even developer familiarity alone is enough to pick a language, and emulators aren’t going to be security critical software and it deals heavily with pointers plus shared resources , at which point a lot of rust benefits aren’t as strong.

Not my intention here. My snarky tone was due to the lack of caffeine in my bloodstream and the number of all-nighter(s) I've been pulling. I apologize if you feel I'm doing any damage to the broader community. Not my objective at all.

I'm honestly deeply interested in why projects choose C++. It's harder to teach to newcomers. I'm guessing this project shares some legacy code with Dolphin?

I'm looking forward to Rust accruing enough tools to attract emulator developers. I'd be happy to put my money where my mouth is and pay for developers via sponsorship that would be willing to undertake this.

I'm currently funding a lot of Rust projects that I like, and I honestly want to accelerate Rust adoption. I don't think there's a harm in that. Big projects like this would generate lots of tools, helper libraries, and other utilities for the broader ecosystem.

> LTO is aggressive by nature, and there’s no guarantee that all parts of the project will react nicely to it. In this case, the problem was Qt, the UI looked completely garbled.

Curious how LTO broke this…

Very interesting isn't it.

So LTO would remove code it considers unreachable (but really whole functions)? And that did it rather than reshuffling code for cache purposes (which is what LTO does in my mind).

Cant LTO just be turned off for the QT objects in the interim?

This is pretty damning to me. An optimization that unsound is crazy scary.