Homebrew Official Citra - New 3DS Emulator

  • Thread starter Thread starter bunnei
  • Start date Start date
  • Views Views 3,862,420
  • Replies Replies 7,211
  • Likes Likes 175
Last edited by Ironclad17,
Anyone got it working with nvs optimus gpu? it keeps defaulting to my intel3000 instead, tried right clicking citra-qt.exe and running with High-performance NVIDIA processor as well as adding both citra-qt.exe and citra.exe to the nvidia control panel 3d settings profile, do I need to disablle optimus in bios to force the nvidia gpu with the intel one turned off?
i do. when you set the gpu in the nvidia control, it doesnt change in the context menu,so dont panic and just run it normally.
 
I don't think *anybody* said they'll be working on JIT next.

Except me [and maybe ector]. But we were only ever talking about rasterizer / combiner JIT.

MerryMage has an open JIT branch, probably the most advanced one yet.
But, in fact, she just confirmed yesterday "merry: [...] one of my jit branches is public (but disabled) and frankly it's slightly broken atm (ADR Thumb instruction is broken). I'm doing work on it at some point.".
- "at some point" is certainly not "next".

Also there is really no "they" because Citra is.. a community effort!
= You could just start work on it OR anybody who previously helped can just stop without reasons.
It's all up to them. There is only a small group of people doing administrative work but aside from that there aren't many rules.
We don't sit together and assign tasks to anybody. Everybody just works on what they want to work on.
However, right now nobody is really thinking about doing JIT, nor is there an effort to push forward in that direction.

Fixing crashes, hangs and improving accuracy is way more important.
It might not be more important to the users, but for the developers it's more important because we judge the emulator by how accurate it emulates, not how fast.
If you had a superfast computer Citra would probably "just work" - performance is not an issue.
However, if you have an emulator only emulating one game fast and everything else is broken that's a very shitty emulator.
Also everybody is going to complain about games not working.
Just check how many people complain/ask about Pokemon not working, instead of being happy that other games work already. Changing performance would change nothing about that. And frankly, people complaining about performance is somewhat more rare (at this point) - the usual complaint is "Pokemon does NOT work" or "GaMe <XYZ> does NOT w0rk!!!1111" [sic].
 
I don't think *anybody* said they'll be working on JIT next.

Except me [and maybe ector]. But we were only ever talking about rasterizer / combiner JIT.

MerryMage has an open JIT branch, probably the most advanced one yet.
But, in fact, she just confirmed yesterday "merry: [...] one of my jit branches is public (but disabled) and frankly it's slightly broken atm (ADR Thumb instruction is broken). I'm doing work on it at some point.".
- "at some point" is certainly not "next".

Also there is really no "they" because Citra is.. a community effort!
= You could just start work on it OR anybody who previously helped can just stop without reasons.
It's all up to them. There is only a small group of people doing administrative work but aside from that there aren't many rules.
We don't sit together and assign tasks to anybody. Everybody just works on what they want to work on.
However, right now nobody is really thinking about doing JIT, nor is there an effort to push forward in that direction.

Fixing crashes, hangs and improving accuracy is way more important.
It might not be more important to the users, but for the developers it's more important because we judge the emulator by how accurate it emulates, not how fast.
If you had a superfast computer Citra would probably "just work" - performance is not an issue.
However, if you have an emulator only emulating one game fast and everything else is broken that's a very shitty emulator.
Also everybody is going to complain about games not working.
Just check how many people complain/ask about Pokemon not working, instead of being happy that other games work already. Changing performance would change nothing about that. And frankly, people complaining about performance is somewhat more rare (at this point) - the usual complaint is "Pokemon does NOT work" or "GaMe <XYZ> does NOT w0rk!!!1111" [sic].
Yup and number of people hitting dislikes over me because the emulator is slow as fuck. On my livestream, they complained that the emulator is slow. I may say that it's the Livestream's fault for making the framerate drop, not the specs of my laptop and people just don't mind and think of performance over quality.
Man, still my channel has targeted as "showing a WIP emulator that isn't in its fullspeed". All I did on my channel was showing what I got in an honest way. For now, I'm unable to make videos until the outrage of my channel is over(about a month or a year).
 

No, that's test cases and Merry made up a fictional (?) test case.
This is supposed to improve stability and to avoid errors. It's not performance related at all and it's not specific to JIT either. Also note that this is 2 months old.. (it has been kind of forgotten but we try to include it now, it's an optional piece though)

Yup and number of people hitting dislikes over me because the emulator is slow as fuck. On my livestream, they complained that the emulator is slow.

Wait until Citra improves so you can do good live-streams?
I, as a viewer, would also be bored.. Citra certainly isn't live-stream material yet (it's way too slow for that).
I think it's way better to record videos now and create highlight reels or speed them up if you want to exhibit gameplay at HD.
 
No, that's test cases and Merry made up a fictional (?) test case.
This is supposed to improve stability and to avoid errors. It's not performance related at all and it's not specific to JIT either. Also note that this is 2 months old.. (it has been kind of forgotten but we try to include it now, it's an optional piece though)
.
Oh, even thought 2 months old merrymage rebased it 1 hour ago.
since you are the real JayFoxRox, when do you think subv's CROs are going to be rewritten and merged ?
 
It does seem suspect that you would be developing a JIT Dynarec before you even have a reliable Interpreter engine.
If the Interpreter hasn't figured out every function necessary for games to be bootable and playable no matter how slow, the JIT Dynarec based upon that can't be accurate.
 
Oh, even thought 2 months old merrymage rebased it 1 hour ago.
since you are the real JayFoxRox, when do you think subv's CROs are going to be rewritten and merged ?

I've already answered both of these (last time I'll answer to previously answered questions):
1. Merrys PR has been stuck in review and forgotten (I think), it has been outdated, I asked her to update it and we try to integrate it now before it is outdated again.
2. Nobody (not even Subv) knows. It's up to each developer how they spend their time.
I could just answer: "Tomorrow, 3PM GMT" and blame you if it's not done by then, because you have as many options as Subv and any other developer / user. Subv is not interested in working on it at this point.
Also all those Pokemon and CRO questions are really annoying, so it's understandable nobody wants to be pushed into doing CROs because there'd be a ton of people bugging you about it.

It does seem suspect that you would be developing a JIT Dynarec before you even have a reliable Interpreter engine.
If the Interpreter hasn't figured out every function necessary for games to be bootable and playable no matter how slow, the JIT Dynarec based upon that can't be accurate.

That's not true.

I've fixed 3 CPU bugs lately but the CPU was stable long before that too. With the new fixes it's even possible to run (all?) ffmpeg codecs (which are commonly used to test how good compilers are) and I'm not aware of any remaining issues with the CPU.
Also the interpeter we use is industry proven (parts of it are being used in Android and Linux).
However, the code is mostly ugly (= works but you don't really want to look at it) and there are tiny bugs which are hard to trace.
Even if there are bugs in the CPU they are usually not important. Mostly stuff like the CPU not reporting that the result of a calculation is not "exact". (`1.0 + 0.00000001 = 1.00000002` should trigger that the result is inexact for example, however, no game checks for that = not important)

Take everything of the following with a grain of salt (as I'm mostly working on the GPU emulation):

I think you are thinking of the incomplete kernel HLE which is independent of the CPU emulation.
- Most graphical issues boil down to bugs in the GPU emulation or the kernel <=> GPU interface (TextureCopy etc.).
- Most freezes, crashes etc. are caused by missing HLE (= missing kernel functions) or bad memory emulation (= kernel emulation is wrong), both of which can not be fixed by an interpreter / JIT.
- Maybe also freezes related to DSP emulation etc. but I'm not qualified to answer that

= not CPU related.
 
  • Like
Reactions: RupeeClock
No, that's test cases and Merry made up a fictional (?) test case.
This is supposed to improve stability and to avoid errors. It's not performance related at all and it's not specific to JIT either. Also note that this is 2 months old.. (it has been kind of forgotten but we try to include it now, it's an optional piece though)



Wait until Citra improves so you can do good live-streams?
I, as a viewer, would also be bored.. Citra certainly isn't live-stream material yet (it's way too slow for that).
I think it's way better to record videos now and create highlight reels or speed them up if you want to exhibit gameplay at HD.
I tried that and the dislikes are still hitting me.
Welp. Better say goodbye to that channel for couple of months or years until the outrage is over. When I posted "Video sped up to ...", more complains especially a specific answer is already on screen.
 
Fixing crashes, hangs and improving accuracy is way more important.
It might not be more important to the users, but for the developers it's more important because we judge the emulator by how accurate it emulates, not how fast.
If you had a superfast computer Citra would probably "just work" - performance is not an issue.
However, if you have an emulator only emulating one game fast and everything else is broken that's a very shitty emulator.

The perspective of someone who actually knows how to code. I just felt like with how much progress has been made recently, the project was getting a lot of momentum and would attract more participation. Speaking of, everyone streaming/recording is getting the word out, if you make it clear that the emulator is in early development and direct everyone to the Git page I think it would really push things forward and probably mitigate some of the negativity.
 
but still slow :/
I tried that and the dislikes are still hitting me.
Welp. Better say goodbye to that channel for couple of months or years until the outrage is over. When I posted "Video sped up to ...", more complains especially a specific answer is already on screen.
Hate to say but those dislikers are likely a bunch of entitled people who do not understand how hard it is to develop an emulator and want to play pokemon when in reality it takes time.
 
I tried that and the dislikes are still hitting me.
Welp. Better say goodbye to that channel for couple of months or years until the outrage is over. When I posted "Video sped up to ...", more complains especially a specific answer is already on screen.

What Killz said is true. Also the more you acknowledge them, the worse it gets. If you just continue doing your uploads without mentioning the negative comments, they will lose interest and move on. If a person is completely out of touch, then there's no point in addressing them.
 
I tried that and the dislikes are still hitting me.
Welp. Better say goodbye to that channel for couple of months or years until the outrage is over. When I posted "Video sped up to ...", more complains especially a specific answer is already on screen.
I upload all of my videos of Citra in real time speed (never speed up stuff) and never really had any problems with deslikes. Also, I take a few seconds to explain every and any update and what is not implemented in the code yet. Even videos where I only show GUI updates (no games running at all) are well received. Take your time to explain in your videos the stuff most people don't know about the emulator, most of them will be pleased ;)
 
I upload all of my videos of Citra in real time speed (never speed up stuff) and never really had any problems with deslikes. Also, I take a few seconds to explain every and any update and what is not implemented in the code yet. Even videos where I only show GUI updates (no games running at all) are well received. Take your time to explain in your videos the stuff most people don't know about the emulator, most of them will be pleased ;)
What kind of software do you usually use to record? I want to upload my videos of Citra (and Cemu too). I know only fraps which can record the desktop xD
 
What kind of software do you usually use to record? I want to upload my videos of Citra (and Cemu too). I know only fraps which can record the desktop xD
Fraps can record any game. If you press F9 to start recording before running the game, Fraps will record full desktop screen and windows. Run the game and then press F9 (press F12 to switch the FPS Counter on screen to see exactly where he will record, it should be inside the game window). Also, mark "60 fps" option and unmark "Lock framerate while recording" to prevent some speed down out of nowhere. Same stuff applies do Cemu recording
 
[...], if you make it clear that the emulator is in early development and direct everyone to the Git page I think it would really push things forward and probably mitigate some of the negativity.

Unfortunately this is not how it works. Some video-uploaders do it and it might have brought some developers, however, the majority of people interested in those videos are users (which mostly seem to be kids / teens).
It will cause all of these invalid issue reports. Note how we get 1-3 questions per day regarding Pokemon or how to run the emulator. Most of the authors of these issues are people who just registered at GitHub to ask questions.
(The "invalid" tag was only introduced recently so the history is only a couple of days old)

Most users are not informed enough to understand what GitHub is (hint: page meant for developers, not users) and how to structure an Issue.
We also have problems with people trying to create unofficial builds who accidently end up creating pull requests to the main project simply because they don't know what they are actually doing.

I guess I spend around an hour per day (sometimes more) to stay in touch with the community, search for bugs which are only in inofficial channels, close requests which are made in the wrong place / by accident.

So really, we should link people towards the FAQ / Forum or a site saying: "POKEMON DOES NOT WORK! ONLY SUPPORT FOR THE LATEST OFFICIAL VERSION" in giant letters.
(IRC is usually even better to ask questions but people don't know how to use that either)

I think we should have a blog post explaining the citra-ecosystem more carefully and tell people to spread the word.
But that's not up to me I guess.
 
  • Like
Reactions: Sharpastic

Site & Scene News

Popular threads in this forum