Why Does 3DSX Work Better Than CIA?

Discussion in '3DS - Homebrew Development and Emulators' started by Kurt91, Sep 10, 2015.

  1. Kurt91
    OP

    Kurt91 GBAtemp Fan

    Member
    391
    89
    Sep 9, 2012
    United States
    Newport, WA
    This is something that I've been curious about for a while now. Whenever an emulator or other homebrew has a 3DSX version as well as a CIA version, the 3DSX always seems to work better. I understand that Ninjhax 2.0 adds more functionality and resource access than the older version, but why doesn't CIA have that same access?

    For example, if I load up a CIA of Monster Hunter 4 Ultimate or Kingdom Hearts - Dream Drop Distance, both games are able to access the added buttons that the N3DS has. However, any homebrew CIA file cannot do this. From my understanding, both of these should have the same access. I mean, since we can easily use a CFW to remove the signature checks and install the game CIAs, in theory, this shows that installed CIA files should have the same access, right?

    So, I'm not trying to complain or anything. Up until now, I had always figured that 3DSX files, being a hacker-developed format instead of an official format, would naturally have less access than anything Nintendo would release. Now, I'm seeing the offical CIA format with less access than the hacker-developed 3DSX format, and I'm completely confused by this. Could somebody clear this up for me?
     
    rotebrotobias likes this.
  2. Mr. Elementle

    Mr. Elementle Advanced Member

    Newcomer
    91
    35
    Dec 30, 2014
    United States
    Detroit
    I don't know the exact reason (i've never worked on any homebrew beyond graphics) but i think it's something to do with 3dsx running in usermode and not being as encrypted as cia or something, but this is just what i put together from other people discussing it
     
  3. TheCruel

    TheCruel Developer

    Banned
    1,351
    2,883
    Dec 6, 2013
    United States
    Whoever made the CIA didn't do it properly if they can't access something the app needs. You need to define in your rsf config what access you need.
     
  4. MRJPGames

    MRJPGames Pretty great guy

    Member
    1,098
    713
    Aug 17, 2013
    Netherlands
    The Netherlands
    It can use just as much, if it doesn't it means it wasn't build correctly. As said before this is defined in a rsf config file. If this file doesn't included the services needed it will not work.
     
  5. Fatalanus

    Fatalanus GBAtemp Advanced Fan

    Member
    586
    210
    Jan 4, 2015
    Romania
    So if the rsf config file is well built, the .3dsx and .cia of the same version of an homebrew will works at same speed?
     
  6. The Real Jdbye

    The Real Jdbye Always Remember 30/07/08

    Member
    GBAtemp Patron
    The Real Jdbye is a Patron of GBAtemp and is helping us stay independent!

    Our Patreon
    11,868
    5,018
    Mar 17, 2010
    Norway
    Alola
    I'm wondering about a similar question. Why is it that only .3dsx and .cia support csnd? It should be possible to define csnd access in the rsf file just the same for both cia and 3ds yet time and time again it's been said that sound in homebrew will not work with .3ds format, but works with .cia. The same goes for dynarec in emulators, I think.

    Doesn't seem like there is a good reason why this isn't possible, accessdesc can be defined the same way for both .3ds and .cia formats.
     
  7. rotebrotobias

    rotebrotobias GBAtemp Maniac

    Member
    1,039
    255
    Jan 31, 2015
    Yes for some reason the new release of 3DSController, C-stick and ZL ZR aren't working on the CIA build, but only on the 3DSX.
     
  8. teampleb

    teampleb BAH! DED! X_X

    Banned
    2,066
    1,320
    Aug 26, 2015
    United States
    Pennsylvania
    Because .3dsx files are run in Ninjhax (iron/tube/oot by extension) and Ninjhax supports some extra features that aren't implemented in ctrulib. So .cia executables don't have access to them. The extra buttons on the n3DS are supported in .3dsx format because it's a Ninjhax feature not a ctrulib feature.
     
    Last edited by teampleb, Sep 11, 2015
  9. Kurt91
    OP

    Kurt91 GBAtemp Fan

    Member
    391
    89
    Sep 9, 2012
    United States
    Newport, WA
    Okay, that makes some sense. Now, I think I remember the source code to Ninjhax had gone open-source a while back. Is that correct? If so, I have two additional questions. First of all, would it be possible to port the additional features supported in Ninjhax to ctrulib? Also, would it be possible to port the upgraded features of Ninjhax 2.0 into 1.0, so that those of us still below 9.2 can use the added benefits that Ninjhax 2.0 provides towards homebrew without losing out on things like CFW?
     
  10. teampleb

    teampleb BAH! DED! X_X

    Banned
    2,066
    1,320
    Aug 26, 2015
    United States
    Pennsylvania
    Both of those is a "probably" but someone would need to put in the work. I'm really not sure if those features could be added to ctrulib though...