Official Citra - New 3DS Emulator

Discussion in '3DS - Homebrew Development and Emulators' started by bunnei, Apr 24, 2014.

  1. Miguel Gomez

    Miguel Gomez GBAtemp Addict

    Member
    7
    Jan 10, 2016
    Planet Earth
    Ah I see. Sorry for the misconception.

    But yeah. Unable to connect to Nintendo server wifi means that it requires a Nintendo Network ID, correct?

    Also, hype for pipe3 fix. Also, anyway to fix DKC Returns?
     
  2. Leppa

    Leppa Newbie

    Newcomer
    1
    Jan 27, 2018
    United Kingdom
    Sorry if this is a stupid question, but would it be possible to play Pokemon X on Citra without access to a physical 3DS, assuming you already had the file?
     
  3. Senjosei

    Senjosei Member

    Newcomer
    2
    Jan 23, 2018
    Australia
    Null Pointer Exception HELL
    Im guessing vertex loader jit & cache but who knows :v
     
  4. Miguel Gomez

    Miguel Gomez GBAtemp Addict

    Member
    7
    Jan 10, 2016
    Planet Earth
    No shared_font.bin, you can't play Pokemon X and Y. But if you got your hands on that copyrighted file, ofc it will play.
    But if you don't have the file, you need a 3DS to dumped the file. Same goes to the game itself. No piracy though.
     
  5. Lunos

    Lunos GBAtemp Regular

    Member
    3
    Dec 26, 2010
    Uruguay
    Montevideo
    The problems that Pokémon X/Y have are freezes, are you saying that those will be fixed when LLE audio is implemented? That's pretty cool!
     
    Slidingbass likes this.
  6. Slidingbass

    Slidingbass GBAtemp Regular

    Member
    2
    Nov 25, 2017
    United Kingdom
    XY doesn't work on citra yet, LLE sound will fix them but we need to wait.
     
  7. jroweboy

    jroweboy GBAtemp Regular

    Member
    3
    Oct 23, 2016
    United States
    we already tried vertex loader jit. turns out its memory bound, we only got like 1% speed boost out of it :/ no, phantom has been hard at work on moving the entire graphics backend to run in gl. currently we load verticies, run vertex and geometry shaders, and do primitive assembly on the cpu. phantom has moved all these stages to gl, which as every dev could tell you, is a ton of hard work. the tricky one is converting pica shaders into glsl, as the pica shaders have a ton of very strange edge cases involved there, and dumb flow control that glsl doesn't have (like goto). the first attempt at the conversion, phantom ended up making it work, but it was slower than the software renderer. I think they're on the 3rd attempt at this, and its now much much faster for people with dedicated gpus, and only a bit faster for people with older or integrated gpus. we did some performance testing on an older version of their code and for some games it was a large speed boost and others it was a small speed boost (it was cool to see the gpu at 100% usage in citra for a change!). this change still got some ways to go, but we are all very excited for it :) No one around these parts seem to follow whats talked about in the development channels, so i figured i'd pass it along. As always, no promises until its actually released and yadayada

    as for the pokemon x stuff. please understand that we can only *guess* that dsp lle will fix it. Lets talk about why we think so. A few months ago, wwylele wanted to find out if audio was really the cause of the problems in the game, so he worked out an idea. But first, you have to understand how audio works in citra. Throw out any talk you might have heard about "AAC audio" or "pipe3" as those are symptoms of the problem, and not a root cause.

    Back in early 2016, merry took on the task to reverse engineer how games usually communicate with the DSP (digital signal processor: aka the hardware responsible for processing audio) and found that the dsp works like a very specialized cpu. It has instructions that it processes, but these instructions are special and aren't like anything you see on a computer. You pass these instructions to the DSP in a payload known as a firmware, which will tell the DSP how to process the data. Most games use the same firmware that the home menu uses, and for those out there that put some emulators on their 3ds, they may remember that they had to dump the home menu firmware to get audio for their emulator. Because this firmware is so common, instead of writing code to interpret firmwares (LLE) merry wrote code that does the same thing that the home menu firmware does (HLE). This is *really cool* as she spent a ton of time recreating how the firmware works by just watching what it does, and citra got audio that works for almost every game... but then there are some games that use a custom firmware.

    So back to where we started, wwylele wanted to find out if X and Y were really crashing because of audio, so he got the idea to take the firmware from the home menu, and patch it into pokemon x, and then launch pokemon x on the 3ds. Any guesses on what happened? You got it. It crashes in the exact same spots as citra. And its missing the same sound effects as citra. Audio issue confirmed! So theres two ways to solve this: 1) add a new HLE audio for every custom firmware you can find in the wild or 2) emulate how the DSP actually works and interpret the firmware. You can probably tell why we don't want to do the first one, it means tons of effort reverse engineering a firmware to find out how it works, and we don't know how many custom firmwares are used in the wild. Wwylele has made tons of progress on LLE though it'll still be quite some time before its useable in citra. Additionally, we have no clue how fast or slow it'll be, and we have no guarentee that x and y will work either. But progress!

    (apologies if i got some technical errors in the post, i'm not the most skilled at 3ds audio stuff)
     
    xmeee978, hausa51, DaMan and 9 others like this.
  8. SoslanVanWieren

    SoslanVanWieren Banned

    Banned
    4
    Feb 6, 2017
    Australia
    yeah this emulator is still quite unoptimized it requires better specs then dolphin and the 3ds is weaker then the game cube.
     
    Last edited by SoslanVanWieren, Jan 28, 2018
  9. Miguel Gomez

    Miguel Gomez GBAtemp Addict

    Member
    7
    Jan 10, 2016
    Planet Earth
    @jroweboy interesting stuff. I have one question related to Pokemon X and Y.
    Maybe you've seen my old post on the old Citra Forums site. Back in September 2016, I tested Pokemon X and tried to compare Diantha's battle in the Pokemon League on two builds(obviously the Official and the Unofficial). From what I've analyzed, the unofficial build with the minor audio fix in Pokemon X and Y bypass Pokemon's ability while the Official didn't.

    January 6, 2018, I've tested Official Canary and Unofficial Build and turns out that the Unofficial can bypass Pokemon's ability WITHOUT the minor audio fix for Pokemon X and Y. I dunno what makes that fix the Pokemon's ability in X and Y, but it sure is interesting. I gotta say, I believe that HLE won't be the solution for it. It could be something else. But meh. Give it a try on updating HLE.

    I will try test the latest Canary build and see if it will also fix the problem.
    It's because it's a handheld, not home console. Also, Dolphin Emulator takes years to optimize Gamecube games back then.
     
  10. drwhojan

    drwhojan GBAtemp Psycho!

    Member
    8
    Jul 14, 2009
    United Kingdom
    Where I Am!
    Dose wwylele are anyone else have A Game Patcher for ?
    "so he got the idea to take the firmware from the home menu, and patch it into pokemon x,"

    Then I can Record and Post on a real 3ds doing this..
    ---

    Maybe how to guild on "take the firmware from the home menu"

    Maybe it's working on some sort of "dspfirm"
    https://github.com/Cruel/DspDump/blob/master/source/main.c

    Some home menu/brew apps have no audio without "dspfirm.cdc" dump of it, PS: Like exp, "Freeshop has no Eshop Audio without it"
     
    Last edited by drwhojan, Jan 28, 2018
  11. Miguel Gomez

    Miguel Gomez GBAtemp Addict

    Member
    7
    Jan 10, 2016
    Planet Earth
    Wait. Isn't the SaveGame Config contains firmware?
     
  12. drwhojan

    drwhojan GBAtemp Psycho!

    Member
    8
    Jul 14, 2009
    United Kingdom
    Where I Am!
    Not sure, if is could be any of them, with a lot of data within.., only one one has one line only that is..
    00000001.metadata
    ---
    Edit: O you mean the system "config" from the nand folder..
    ----
    Edit: Maybe the 3DS "boot.firm"
     
    Last edited by drwhojan, Jan 28, 2018
  13. Miguel Gomez

    Miguel Gomez GBAtemp Addict

    Member
    7
    Jan 10, 2016
    Planet Earth
    Yep.
    nand/data/<zeros>/sysdata/00010017
     
    drwhojan likes this.
  14. drwhojan

    drwhojan GBAtemp Psycho!

    Member
    8
    Jul 14, 2009
    United Kingdom
    Where I Am!
    I have no idea how would one patch that into a Owned Game converted to ROM though..
     
  15. Miguel Gomez

    Miguel Gomez GBAtemp Addict

    Member
    7
    Jan 10, 2016
    Planet Earth
    I dunno.
    Anyways, I've dumped my 2DS, load System Settings(2DS dump), and this is what it looks like:
    upload_2018-1-28_20-42-29.png
    Same goes to the Official Canary Build too.
    However, it will freeze because it lacks system keyboard.
     
    xmeee978, AceofZeroz and drwhojan like this.
  16. drwhojan

    drwhojan GBAtemp Psycho!

    Member
    8
    Jul 14, 2009
    United Kingdom
    Where I Am!
    I wonder why they nether used the NINTENDOo2DS logo on a N2DSXL :rofl: ... but NINTENDOo3DS
     
  17. Miguel Gomez

    Miguel Gomez GBAtemp Addict

    Member
    7
    Jan 10, 2016
    Planet Earth
    It's Nintendo being Nintendo. A lazy fuck but did the job done.
     
    AceofZeroz and drwhojan like this.
  18. Miguel Gomez

    Miguel Gomez GBAtemp Addict

    Member
    7
    Jan 10, 2016
    Planet Earth
    I tested on the recent Canary build and nope.

    Add-on: I mostly install all of my NAND on Citra(it's still incomplete) and I manage to make the system keyboard working on Canary. But emulator freeze afterwards.
    Also, games and apps that uses the 3DS System Keyboard will definitely crash or freeze the emulator like Mii Maker or Mario Maker.
     
    Last edited by Miguel Gomez, Jan 28, 2018
  19. SoslanVanWieren

    SoslanVanWieren Banned

    Banned
    4
    Feb 6, 2017
    Australia
    wii is the newest console you can emulate thats worth emulating cemu and cirta don't run most games perfectly so i would not get a powerful pc just for this emulator.
     
  20. Miguel Gomez

    Miguel Gomez GBAtemp Addict

    Member
    7
    Jan 10, 2016
    Planet Earth
    Well. If you don't want to play 3DS or Wii U Emulator, then don't.
    Also, Dolphin is like more than 10 years old. Back then around 2003 or 2007, Gamecube games don't run well and Gamecube released on 2001. Anyways, if you want to talk about Wii stuffs, then don't comment here as it's pretty much offtopic.

    Let others with better computers test the emulator. Heck, I don't even have good specs that runs Citra on fullspeed at 4K Resolution like I don't really care to do that since I have my own 3DS to play games(I only use the emulator to test, not to play) and it's really pricey. I'd stick using Citra on Native Resolution because it's faster. Now, this is just my opinion, but people nowadays really want to see both 3DS and Wii U Emulator to have better quality. Such PCMASTERRACE. Like I don't give a fuck about it.

    ==================================================================================================

    It's been hours and no Windows release for the Official Canary? Hmm? I'm still using the recent Windows build for days lol.
    upload_2018-1-29_17-6-15.png
     
    xmeee978 and TotalInsanity4 like this.