Is it possible to convert a dev cci into a retail cia? (3DS Unity CCI)

Discussion in '3DS - Homebrew Development and Emulators' started by Kriogenic, Aug 12, 2016.

  1. Kriogenic
    OP

    Kriogenic Member

    Newcomer
    49
    17
    Feb 20, 2016
    Hi everyone so my question is relating to development cci's specifically ones compiled with Unity with the new Unity for 3DS (http://blogs.unity3d.com/2016/01/29/unity-comes-to-new-nintendo-3ds/)

    I have compiled a cci and it has an option to create a cia with it. the CIA with it does not install as it is a dev CIA.

    With the cci given when run through decrypt9 it says it successfully decrypted it and the CCI can then be opened with citra 3DS emulator and runs fine.

    I am running reinand CFW and am not sure if I can run cci directly and have tried multiple tools to try convert the decrypted cci into a cia including Decrypt9 itself which has a cci to cia converter.

    I have tried the following things
    • install the dev mode cia directly causes invalid signature error in all cia installers I tried (FBI, DevMenu and Big Blue Menu)
    • decrypting the cci and converting it to cia using Decrypt9 causes the CIA to install but cause a crash with the black screen telling to power off
    • decrypting the cci and extracting the info from it exHeader and etc and using makerom to convert to cia this causes makerom to throw a content 0 is invalid message and not create a cia, changing makerom to make a cci out of the extracted content works fine.
    • decrypting the cci and running it through HackPack to convert to cia allowed it to install and when booting the game it gives an infinite 3DS logo loop.
    My system is a N3DS with:
    sysNand 9.2
    Reinand CFW (latest firmware)
    Big Blue Menu injected to H&S
    DevMenu and FBI installed as CIAs to emuNAND

    Has anyone else attempted this or have any ideas what to try? I do not really want to fork out for a development console or a SNAKE Debugger or whatever just to try out 3DS development.

    Thanks,
    Kriogenic.
     
    Last edited by Kriogenic, Aug 12, 2016


  2. ihaveamac

    ihaveamac GBAtemp Guru

    Member
    5,466
    5,958
    Apr 20, 2015
    United States
    Tigard, OR
  3. Kriogenic
    OP

    Kriogenic Member

    Newcomer
    49
    17
    Feb 20, 2016
    I updated my post to say I am using a N3DS and thanks I will look into it. Hopefully its N3DS compatible.
     
  4. ihaveamac

    ihaveamac GBAtemp Guru

    Member
    5,466
    5,958
    Apr 20, 2015
    United States
    Tigard, OR
    yes it works with New3DS and Old3DS.
     
  5. Kriogenic
    OP

    Kriogenic Member

    Newcomer
    49
    17
    Feb 20, 2016
    Sorry as it is just a link to a download and I am not familiar with Luma3DS do I need a separate emuNAND for this or does it not mess with my current emuNAND?
     
  6. ihaveamac

    ihaveamac GBAtemp Guru

    Member
    5,466
    5,958
    Apr 20, 2015
    United States
    Tigard, OR
    you can just use it as normal. all custom firmwares use the same emu/rednand.
     
  7. Kriogenic
    OP

    Kriogenic Member

    Newcomer
    49
    17
    Feb 20, 2016
    Oh wow thank you so very much for your help with this. I finally have had success...

    Firstly I created a CCI in Unity (without the development build option checked in build settings). This creates a development build without SNAKE debugger support.

    I then put this into the files9/D9Game folder on my SD card which the latest Decrypt9 uses, I then proceeded to decrypt the CCI using Decrypt9 options "Content Decrypter Options" -> "NCCH/NCSD File Options" -> "NCCH/NCSD Decryptor"
    NOTE: If you need key files you will have to find them elsewhere!

    Once the decryption was complete I select "NCCH/NCSD to CIA Converter" which will convert the decrypted CCI into a CIA.

    Booted into Luma3DS with development functionality enabled and the CIA installed and ran flawlessly.

    I would really like to thank you for your blistering fast replies in solving an issue I have been trying to solve for literally 6 or so hours today. If only I knew exactly what I was looking for... I was trying to be overly complicated.

    and since I have CTRBootManager I can continue to use ReiNAND as usual between development tests.

    Massive thank you again.
     
    Februarysn0w and ihaveamac like this.
  8. Voxel

    Voxel Fable Junkie

    Member
    GBAtemp Patron
    Voxel is a Patron of GBAtemp and is helping us stay independent!

    Our Patreon
    5,199
    5,912
    Jun 27, 2015
    United Kingdom
    England, UK
    The CCI which Unity produces contains what's known as 0-key encryption.

    If possible, use 3DS Simple CIA Converter as soon as the CCI finishes building, as 0-key encryption is supported by it. (Be sure to rename the .cci extention to .3ds, because the tool does not detect '.cci' file extentions.) Alternatively, @ihaveamac himself recently added 0-key encryption support to his 3dsconv utility, which serves the same purpose as Simple CIA Converter, but is a more up-to-date utility to use.

    The CIA that Unity outputs doesn't (and will possibly never?) work with a retail 3DS; I don't know the reason why, myself. Perhaps the CCI2CIA tool supplied by the official SDK makes the CIA a dev CIA that will only be able to be installed on dev hardware.

    I don't think it matters whether you use normal Luma builds or Dev Luma builds, as I have tried my own Unity projects on both, and they have successfully worked using the method I explained above.

    Just be sure not to tick the "development build" option before you start building your project in the Unity Editor and you will be fine.
     
    Ryccardo likes this.
  9. PennyTails

    PennyTails Newbie

    Newcomer
    7
    0
    Aug 23, 2016
    United States
    Hello everyone, im new in the forum but i bought a n3ds just to try this, i have Luma3DS (5.5 dev) running with emuNAND, this method works for me too but i have to open the cia several times, it crashes 4 out of 5 times, is this normal?
     
  10. marcelop

    marcelop Member

    Newcomer
    10
    0
    Aug 24, 2016
    Canada
    Hey there. I'm having the same problem as PennyTails. I was able to install my CIA, but running it causes a black screen + crash 1 out of 10 times (on Gateway Mode or Luma3DS). I'm wondering if this is happening because it's an up to date emuNAND.
    Kriogenic, what's the version you're using?

    I have a N3DS with sysNAND 9.0 and Gateway emuNAND up to date (v 11.0 I think). I haven't tried installing it on the sysNAND yet. I'll probably make a new emuNAND 9.0 and try it
     
  11. dankzegriefer

    dankzegriefer GBAtemp Advanced Fan

    Member
    829
    437
    Aug 19, 2015
    United States
    The CCIs are zerokey encrypted. Almost all CCI to CIA tools supports zerokey.
     
  12. marcelop

    marcelop Member

    Newcomer
    10
    0
    Aug 24, 2016
    Canada
    Right. I did use the 3DS Simple CIA Converter mentioned above in this thread. It actually installed the CIA correctly, but when running it, it crashes on launch
     
  13. devleon

    devleon Member

    Newcomer
    30
    9
    Aug 17, 2016
    Gambia, The
    Thanks so much for asking this question! I was wondering the exact same thing for quite a while now.
    Now I can finally port my unity games to my 3ds :)
     
  14. dankzegriefer

    dankzegriefer GBAtemp Advanced Fan

    Member
    829
    437
    Aug 19, 2015
    United States
    What 3DS model?
     
  15. marcelop

    marcelop Member

    Newcomer
    10
    0
    Aug 24, 2016
    Canada
    N3DS XL with sysNAND 9.0 and Gateway emuNAND 11.0 .

    I tried a few other things last night, with no success. I installed it directly on the sysNAND, and I also tried decrypting/encrypting with Decrypt9 like Kriogenic did.
    Honestly, if I hadn't seen it work a few times, I would have given up already.
    I still suspect something might be wrong with the package though. Maybe Unity or the SDK are not fully compatible with windows 10
     
  16. marcelop

    marcelop Member

    Newcomer
    10
    0
    Aug 24, 2016
    Canada
    Do any of you guys have an example cci that you have compiled with Unity yourself (and that you know actually works) that I could test on my environment? That way I would be sure the problem is with my package and not with the 3DS setup
     
  17. spinal_cord

    spinal_cord Knows his stuff

    Member
    3,014
    595
    Jul 21, 2007
    somewhere
    I can't get past the 'Nintendo3DS' splash screen, just sits there forever.
     
  18. marcelop

    marcelop Member

    Newcomer
    10
    0
    Aug 24, 2016
    Canada
    That happens to me too, if I boot with Luma3DS. If I boot in GW mode it passes the splash screen but black screen + crashes immediately after.
     
  19. spinal_cord

    spinal_cord Knows his stuff

    Member
    3,014
    595
    Jul 21, 2007
    somewhere
    Can someone who has it working please post their unity version and Nintendo plugin version? It might be something to do with latest updates in one or the other.
     
  20. Voxel

    Voxel Fable Junkie

    Member
    GBAtemp Patron
    Voxel is a Patron of GBAtemp and is helping us stay independent!

    Our Patreon
    5,199
    5,912
    Jun 27, 2015
    United Kingdom
    England, UK
    My specs:
    Computer OS: Windows 10
    Unity for New3DS Version: 1.1.15 (5.2.4)
    CTR_SDK: 11.4.0 (11.5.X causes issues for Old3DS builds for me.)
    New3DS specs: 11.0.0; Arm9LoaderHax; Luma3DS Dev 6.0.1 hourly (I don't think the settings matter.)

    Sorry I wasn't able to reply to you earlier last month, by the way. It's just that it could be anything! Are you building with "development build" checked? Are you building a scene with too many assets? There are plenty of things that make the build crash or not load.

    I'm also starting to have a hunch that your 3DS's setup plays a key part in Unity build functionality as well.