"why don't you program it yourself?"

This is an incredibly common thing I hear from people like SleepingSnake, FlamboyantHam, and others who refuse to up their own game, or even act diplomatic and say that adding in various features to Citra is out of scope. Rather than respond with this every single time someone has a feature request, a question about a feature, or bugs which run prevalent across various emulators, why not just answer diplomatically, or not at all?

I looked up a thread in regards to Vulkan rendering, and this same response was given out by SleepingSnake rather than him acknowledging that other people may not have that skillset as a whole. Yes, we understand that you’re a programmer working on an emulator, but you’re by far not one of the best programmers I’ve ever seen. I’ve met more humble and considerate people who have worked on Dolphin, Cemu, and various other emulators who wouldn’t be so brazen as to tell people to do their work.

And yes, it’s an open source project. Anyone can contribute. But if you’re going to continuously respond with this to your community, you can leave it to those people who you’re so desperately trying to get to do your work for you. Or just flat out admit that you all bit off more than you can chew…or give a fuck about Yuzu more.

Citra’s a mess. On the front page, it advertises to run Super Mario 3D Land perfectly, yet the game won’t boot up after clearing halfway through the game. Fire Emblem Awakening still can’t load any of its various spotpass content. Other games have graphical rendering issues, tearing, audio issues, codec rendering issues for cutscenes, and various other problems which puts this at the equivalent of epsxe when it was first starting out.

Considering Cemu has been around for as long as Citra has, there’s no excuse for 3DS emulation to be in the godawful state it is. Yet here you guys are, telling other people to do your work rather than gather some basic competence.

I’m disgusted, especially considering the 3DS eshop is closing so soon. Fuck off and never tell people to do your work for you ever again.

Couple things:

  1. I am not, and have never claimed to be a developer. I’m a moderator and support staff. Not sure where you got the ridiculous idea to insult my programming skills by comparing “those” to other’s, but hey you do you lol.

  2. The reason why I specifically am not always as cordial and “diplomatic” as I could be when responding to users that demand we implement a given feature is because those users are often projecting their usually unreasonable expectations unto a literal bunch of volunteer devs.

Believe it or not, but working on Citra is a hobby, not a job or an obligation. We don’t tell devs what to do and what to work on, they do that themselves. When they want and how they want. Our only requirement to them is that their code be of high enough quality and that it is a worthwhile addition to the emulator as a whole.

Suggesting that their free time only be spent satisfying your desires for the simple fact that you believe it is their solemn duty to add highly requested features/fixes regardless of their own interests, time and skillset is about the most entitled and rude thing you could suggest. They’re emulation enthusiasts and volunteers, not slaves.

I tell people that if they want to see their requested feature X added relatively soon, the only way to ensure that is by adding it themselves because that is the case. We currently don’t have many devs available to work on the project. That’s just how things go in life sometimes, again this is a hobby, not a job or obligation. Hopefully that’ll change in the future, but until then, that is the case.

So there isn’t some sort of “unwillingness” from our end to implement these features ourselves, but more so a lack of people able to work on the project at the moment. Hence the response. Hell, if you know of some people interested in 3DS emulator development with C++ knowledge, feel free to send them our way. We’d be happy to receive code contributions from new Devs!

As always, you’re free to open up a feature request on our GitHub page for something you’d like to see added. You’ll just need to keep in mind that it may take quite a while until a Dev takes interest and is able to work on your request.

Not to kick the can further down the road because I’ve seen this argument play out time and again, but it still doesn’t make sense how Yuzu has (experimental) Vulkan support while Citra doesn’t.

That one is simpler than you might think. The short of it is, Yuzu has Devs that were interested, had time and the know-how to implement a Vulkan backend. Whilst Citra does not. It’s a misconception to think that because the 2 emulators are sister projects, that the Dev teams are the same. That might’ve been true in the early stages of yuzu’s development, but that has long since stopped being the case.

Keep in mind that implementing a new graphics backend is no small task. Even if Citra did have a Dev that could implement Vulkan, that doesn’t necessary mean that they’d have the time or willingness to maintain such a thing. It’s a big commitment.

  1. If you can’t program it yourself, then don’t tell other people to program it for you if you (or the team of programmers behind Citra) are incapable. You can politely invite people to contribute to the project, but you shouldn’t go out of your way to imply “well if you don’t like it fuck you there’s a github page”.

  2. There isn’t so much a demand as much as there is an impatience with incompetence. If other emulation projects are up to the task, and half of the team abandoned Citra for Yuzu, then I would enjoy if the Citra team would stop pretending they cared in such a disingenuous manner.

Every update to Citra as of recent has been a non-update: an update which is there in order to say “hey, we’re doing something” while changing nothing on the user back end or fixing any prominent, glaring issues.

The bold assumption to believe that it’s a matter of my desires or my belief as you put it, is misguided. It’s not even a matter of getting things to function on the same level of other emulators. Rather, it’s the arrogance that you and FlamboyantHam have put out of telling others to “go program it ourselves”, as you so oft put it to deflect any criticism of Citra.

Not all of us are programmers. No, some of us are hobbyists, some of us are game historians, and some of us just want to play a game with better features than Nintendo’s official hardware provides. So the mental gymnastics needed to go from “basic feature requests” to “stop treating us like slaves and do it yourselves” is pretty astounding, selfish, and shortsighted, without any insight as to what people on the outside are thinking looking in.

I’ll argue in good faith any day of the week that some emulator developers are treated like trash. Heck, look what happened to Near. The people who drove him to do what he did deserve to be shot dead in the streets. You guys aren’t being treated like slaves; you’re just being told that your emulator is in a really shitty place, and it doesn’t help when you look down upon anyone who is disappointed.

Constructive criticism is always appreciated. However, this thread is no longer constructive.

Closing this thread.

As a reminder, Citra is an open source endeavor backed entirely by volunteers. If you have a specific request or encounter a bug, feel free to file a GitHub issue.

If you’re capable of implementing the specific feature we’re missing, don’t hesitate to reach out to our team so we can invite you to our development channel.

Lastly, yuzu and Citra have entirely different development teams. We are sister projects, but almost all developers work on the specific project they choose to. Our support staff is shared to an extent, but once again, we also have those who only provide support on the specific project they’re interested in.

We’re volunteers with individual lives and not a corporation.