Homebrew Any program to run CXI executables?

Deleted member 446461

Well-Known Member
Member
Joined
Apr 16, 2018
Messages
265
Reaction score
73
Trophies
0
XP
485
Hello!

I'd like to know what program can I use to run CXI files on the Nintendo 3DS for portability purposes. It would be easier to back up, since it wouldn't need to be converted to CIA and reinstalled on the Nintendo 3DS every time the MicroSD dies (counting that it's slow and apart from that it's a really, really small MicroSD card (with small, I mean 8 GB) because I'm a Venezuelan). I would also like to know where do CXI programs store its saves.
 
I think you are gonna have a hard time finding someone to help with this.

Devs tend to not mess with file formats that are exclusively used for the purposes of piracy.

Gateway could run .3ds but of course it's quite deprecated at this point.
 
Hello!

I'd like to know what program can I use to run CXI files on the Nintendo 3DS for portability purposes. It would be easier to back up, since it wouldn't need to be converted to CIA and reinstalled on the Nintendo 3DS every time the MicroSD dies (counting that it's slow and apart from that it's a really, really small MicroSD card (with small, I mean 8 GB) because I'm a Venezuelan). I would also like to know where do CXI programs store its saves.
Both 3ds cart images (CCI) and sd games (CIA) are container formats that contain CXI executables. No 3ds based applications run CXIs directly, nor do any homebrews. Citra, the PC based 3ds emulator, does however.

I think it would be possible for a homebrew app to launch CXIs but I don't think there is enough demand for the feature (it would be difficult project for even a skilled developer, which are in short supply). The save location is determined by the container format.

@x65943 It's a disputed topic on whether retail exe formats like CXI (but mostly CIA) are considered piracy, but most disagree since fully homebrew apps can be generated with the format and are quite common.
 
I think you are gonna have a hard time finding someone to help with this.

Devs tend to not mess with file formats that are exclusively used for the purposes of piracy.

Gateway could run .3ds but of course it's quite deprecated at this point.
As zoogie was saying, CIA is actually a container format containing one or more CXIs, with CXI simply being a generic all-in-one executable package containing both the code and assets.
It's not a piracy-specific thing, and could have some benefit to homebrew developers, as it would make it easy to bundle assets into the homebrew, so that whether loaded from HBL or from an installed CIA, there would be no extra files/folders needing to be loaded from the SD card.
You can obviously bundle assets into an elf, and then pack that elf into a .cia and .3dsx and achieve the same result, but if I'm not mistaken, an elf is loaded entirely into memory, so this wouldn't work for large amounts of data.
I'm not sure if there is any way to dynamically load data tacked onto an .elf in a universal way that would also work when packed into a .cia and for that matter, any data tacked onto an .elf might automatically be loaded into memory anyway. So there might not actually be any other good way of accomplishing it without the use of a .cxi or some new custom file format with accompanying homebrew launcher support and a packer to pack the data into a .cia. I don't actually know though.
Anyway, smea decided on using a custom format for compatibility reasons, and that might have been the right decision back then, but now that people are almost exclusively using Luma3DS with Rosalina to launch homebrew, compatibility is no longer much of a concern. .cxi loading does seem like it could provide some benefits to homebrew devs, but at this point, I'm not sure how much point there is to it since most devs have moved on from the 3DS. Of course, there's no specific reason homebrew would use a proprietary Nintendo file format when new loader code would have to be written for it anyway. They could choose literally any file format they wanted. Using a format that already exists on the system might make it easier to write said loader code, though.
 
  • Like
Reactions: E1ite007 and x65943
I think you are gonna have a hard time finding someone to help with this.

Devs tend to not mess with file formats that are exclusively used for the purposes of piracy.

Gateway could run .3ds but of course it's quite deprecated at this point.
I wish there existed flashcards that didn't need the 3DS firmware to be edited in order for them to work, like R4 or DSTWO.

Both 3ds cart images (CCI) and sd games (CIA) are container formats that contain CXI executables. No 3ds based applications run CXIs directly, nor do any homebrews. Citra, the PC based 3ds emulator, does however.

I think it would be possible for a homebrew app to launch CXIs but I don't think there is enough demand for the feature (it would be difficult project for even a skilled developer, which are in short supply). The save location is determined by the container format.

@x65943 It's a disputed topic on whether retail exe formats like CXI (but mostly CIA) are considered piracy, but most disagree since fully homebrew apps can be generated with the format and are quite common.
Which means that the save file could be in the same folder as the executable?

As zoogie was saying, CIA is actually a container format containing one or more CXIs, with CXI simply being a generic all-in-one executable package containing both the code and assets.
It's not a piracy-specific thing, and could have some benefit to homebrew developers, as it would make it easy to bundle assets into the homebrew, so that whether loaded from HBL or from an installed CIA, there would be no extra files/folders needing to be loaded from the SD card.
You can obviously bundle assets into an elf, and then pack that elf into a .cia and .3dsx and achieve the same result, but if I'm not mistaken, an elf is loaded entirely into memory, so this wouldn't work for large amounts of data.
I'm not sure if there is any way to dynamically load data tacked onto an .elf in a universal way that would also work when packed into a .cia and for that matter, any data tacked onto an .elf might automatically be loaded into memory anyway. So there might not actually be any other good way of accomplishing it without the use of a .cxi or some new custom file format with accompanying homebrew launcher support and a packer to pack the data into a .cia. I don't actually know though.
Anyway, smea decided on using a custom format for compatibility reasons, and that might have been the right decision back then, but now that people are almost exclusively using Luma3DS with Rosalina to launch homebrew, compatibility is no longer much of a concern. .cxi loading does seem like it could provide some benefits to homebrew devs, but at this point, I'm not sure how much point there is to it since most devs have moved on from the 3DS. Of course, there's no specific reason homebrew would use a proprietary Nintendo file format when new loader code would have to be written for it anyway. They could choose literally any file format they wanted. Using a format that already exists on the system might make it easier to write said loader code, though.
The program I want as a portable executable is Pokémon Moon. So it definitely won't work as a 3dsx unless the Nintendo 3DS can use a part of the MicroSD card for swap memory, which I doubt is possible until now.

Use GodMode9 to convert *.cxi → *.cia. Install the *.cia with FBI.
May I remind you that we're talking about a 8GB MicroSD? I have a bunch of Nintendo DS ROMs to play with TWLMenu++, so that method would waste all of the space left in the MicroSD card.
 
May I remind you that we're talking about a 8GB MicroSD? I have a bunch of Nintendo DS ROMs to play with TWLMenu++, so that method would waste all of the space left in the MicroSD card.
Cut and paste your (main) Nintendo 3DS folder from SD card to computer. Convert and install the CXI → CIA on a (second) Nintendo 3DS folder. Whenever you need to switch between the two, you move one back to the computer and the other to the SD card.
 
  • Like
Reactions: E1ite007
I wish there existed flashcards that didn't need the 3DS firmware to be edited in order for them to work, like R4 or DSTWO.


Which means that the save file could be in the same folder as the executable?


The program I want as a portable executable is Pokémon Moon. So it definitely won't work as a 3dsx unless the Nintendo 3DS can use a part of the MicroSD card for swap memory, which I doubt is possible until now.


May I remind you that we're talking about a 8GB MicroSD? I have a bunch of Nintendo DS ROMs to play with TWLMenu++, so that method would waste all of the space left in the MicroSD card.
Sky3DS and Stargate are a thing, but don't waste your time with them, they are expensive and offer less features than free CFW. All they can do is run retail games. No eShop, no DLC, no region free, no cheats, nothing of that sort.

Even if a .cxi loader was released, do not expect it to work with commercial games. That would not be what it's made for, and there are probably extra steps involved to loading commercial games that way, as they were never designed for it.
 
  • Like
Reactions: E1ite007

Site & Scene News

Popular threads in this forum