Homebrew cxitool -- convert 3dsx to cia directly

godreborn

Welcome to the Machine
Member
Joined
Oct 10, 2009
Messages
38,471
Trophies
3
XP
29,138
Country
United States
So I've been trying to figure this out, but I cannot manage to change anything about an existing .3dsx (banner and icon) when converting it to a .cia. (Also, I was initially confused by the original post here which said "cxitool game.3dsx game.cia" instead of "game.cxi" and also this guide for makerom that uses .bin files for banner and icon files). Here's the workflow I used, feel free to find its flaws:

1) User 'bannertool.exe makesmdh' to make a smdh icon file.

2) Use 'bannertool.exe makebanner' to make a bnr banner file.
--I noticed that it would inform you when pointing to a smdh file or a bnr file if the file wasn't the right size, but it listed no limits for the sound file. When I made a custom VC inject for Sonic 3 Complete, I remember the requirements for the sound jingle being strict, but there is no information listed here. It even fully accepted a full length song I was testing.

3) Get the 3dsx file (I am using OpenLara for 3DS)

4) Use cxitool.exe to convert the 3dsx to a cxi
--Here is an opportunity to choose the banner file, but not an icon file. I noticed that if I skip choosing the banner file here and instead try to choose it with makerom.exe, the file size for the final cia doesn't reflect the added size of the bnr file, meaning it looks like makerom.exe doesn't even add the bnr information into the cia file.

5) Use makerom.exe to convert the cxi to cia
--Here you can choose the bnr file and the smdh file, but like I said before, if I do it now, it doesn't seem to actually add it to the final cia's file size.

6) Install the cia on the 3DS with FBI
--Here I can see that, no matter when I inserted the bnr file, neither the bnr file or the smdh file actually apply to the cia. It still has the default black and white Lara Croft icon from the 3dsx file, no banner, and no sound jingle.
You also need an rsf (use its template). I've never used the app of this thread though.
Post automatically merged:

BTW, you may need the elf as I don't think 3dsx can be used.
 
Last edited by godreborn,
  • Like
Reactions: PandaPandel

PandaPandel

Active Member
Newcomer
Joined
Mar 17, 2024
Messages
33
Trophies
0
Age
30
XP
74
Country
United States
According to this, at "Creating RSF files", "CIA/CCI can be created without using a RSF file, but default settings will be used."
Do you happen to know where RSF files go?


I've been stuck for days trying to add a banner to a 3dsx. App I converted to CIA.

You all seem to be the closest I've seen to figuring out exactly why. Any help would be so appreciated.
 
Last edited by PandaPandel,

PandaPandel

Active Member
Newcomer
Joined
Mar 17, 2024
Messages
33
Trophies
0
Age
30
XP
74
Country
United States


AD

AD
Advertisement

So I've been trying to figure this out, but I cannot manage to change anything about an existing .3dsx (banner and icon) when converting it to a .cia. (Also, I was initially confused by the original post here which said "cxitool game.3dsx game.cia" instead of "game.cxi" and also this guide for makerom that uses .bin files for banner and icon files). Here's the workflow I used, feel free to find its flaws:

1) User 'bannertool.exe makesmdh' to make a smdh icon file.

2) Use 'bannertool.exe makebanner' to make a bnr banner file.
--I noticed that it would inform you when pointing to a smdh file or a bnr file if the file wasn't the right size, but it listed no limits for the sound file. When I made a custom VC inject for Sonic 3 Complete, I remember the requirements for the sound jingle being strict, but there is no information listed here. It even fully accepted a full length song I was testing.

3) Get the 3dsx file (I am using OpenLara for 3DS)

4) Use cxitool.exe to convert the 3dsx to a cxi
--Here is an opportunity to choose the banner file, but not an icon file. I noticed that if I skip choosing the banner file here and instead try to choose it with makerom.exe, the file size for the final cia doesn't reflect the added size of the bnr file, meaning it looks like makerom.exe doesn't even add the bnr information into the cia file.

5) Use makerom.exe to convert the cxi to cia
--Here you can choose the bnr file and the smdh file, but like I said before, if I do it now, it doesn't seem to actually add it to the final cia's file size.

6) Install the cia on the 3DS with FBI
--Here I can see that, no matter when I inserted the bnr file, neither the bnr file or the smdh file actually apply to the cia. It still has the default black and white Lara Croft icon from the 3dsx file, no banner, and no sound jingle.
Same Exact issue im losing sleep over this and the only thing that makes sense is the ELF file, and also the RSF file.

I think if our 3dsx does not spit one out we somehow have to provide it. I found a Dummy RSF file but I have NO idea where it goes.

I think for this to work, we have to somehow get it into the CXI that is being converted into CIA because I am so confused. I spent a day or so looking at .bnr and .icn files. And the ones that I made def have data in them according to 3DSexplorer.

I was however able to inject my own icon into the file, but I almost think its because it previously had one.

but since the 3dsx file never had a banner. It feels like it wont just accept one, no matter how many tutorials I follow.

but the 3dsx had a smdh file/icon which then I was able to swap out with whatever I wanted.

For some reason I think this is for real the RSF missing or ELF because the RSF tells the 3DS what developer its from, and alot of information that seems necessary.
 

JohnIsAnIdiot

Member
Newcomer
Joined
Mar 20, 2024
Messages
19
Trophies
0
Age
34
XP
31
Country
United States
What is this:
cxitool is a useful PC app that converts *.3dsx homebrew executables directly to cxi's, which are the building blocks of the CIAs that all you pirates know and love. This app was released a few months ago, but is was buried in a devkitpro repo so it has largely gone unnoticed. The author, fincs, has chosen not to publicize it for whatever reason, even though the source is public. I assume it will be a part of a devkipro update sometime in the future, but that seems like forever given there has not been an official update since January.

This can be very useful for instances where the 3dsx author has chosen not to provide a cia, and has the source code closed (or too difficult to compile). A lot of older 3dsx homebrew has suffered this fate and this app could be of great benefit to making them more accessible to a new audience.

Instructions:
Usage: cxitool [options] input.3dsx output.cxi
Options:
-n, --name=<value> Specifies the process name of the application
-c, --code=<value> Specifies the product code of the application
-t, --tid=<value> Specifies the title ID of the application
-s, --settings=<file> Specifies the settings file
-b, --banner=<file> Specifies the banner file to embed in the CXI
-v, --version Displays version information
-?, --help Displays this text


Example usage:
cxitool game.3dsx game.cia
makerom -f cia -o game.cia -target t -i game.cxi:0:0

Source:
https://github.com/devkitPro/3dstools/tree/cxi-stuff

Download notes:
I have attached a windows build for your convenience. It has been verified:

Filename | sha256

cxitool.exe | 08e2d0e8a853171d344b0c4feb0854c841fe197fb4f6dfcdde679917c15ae607
https://www.virustotal.com/en/file/...b4f6dfcdde679917c15ae607/analysis/1473556082/

cxitool.exe (2017-7-7) | aa6502c3adfc3e59605a791feb1921f8ecfecaa39b6275d968c899bea4425696
https://www.virustotal.com/en/file/...9b6275d968c899bea4425696/analysis/1499478503/

cxitool.exe (2022-6-24) | sha256 in link
https://www.virustotal.com/gui/file...78c8b99f488c04a89933061222861865f81329e95cbe/
'cxitool' is not recognized as an internal or external command,
operable program or batch file.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • K3Nv2 @ K3Nv2:
    Waste of the 128kb they take
    +1
  • Psionic Roshambo @ Psionic Roshambo:
    Tiger handhelds are good for one thing.... Occupying space in a landfill
  • K3Nv2 @ K3Nv2:
    They make good burning plastic
  • BigOnYa @ BigOnYa:
    Makes me wonder if the Pi5 can play PS2? If there's even a core for it yet.
  • K3Nv2 @ K3Nv2:
    Pi5 should be able to do ps2
  • Psionic Roshambo @ Psionic Roshambo:
    Try Dragon Quest VIII it ran perfectly on a core 2 Duo I had
  • Psionic Roshambo @ Psionic Roshambo:
    Easiest game to run I found
  • K3Nv2 @ K3Nv2:
    Ps2 emulation is cake compared to 3 years ago
  • Psionic Roshambo @ Psionic Roshambo:
    Hardest is probably Gran Turismo 4
  • Psionic Roshambo @ Psionic Roshambo:
    It's much better now yes but Gran Turismo 4 is still the hardest one to emulate that I have in my collection
  • Psionic Roshambo @ Psionic Roshambo:
    Runs perfectly fine but it's as if I can feel it always on the boarder line of dropping a frame lol
  • BigOnYa @ BigOnYa:
    I ordered a spin ball couple days ago to add to my arcade cabinet, will be nice for games like golden tee, or bowling
  • Psionic Roshambo @ Psionic Roshambo:
    I always wanted a controller for like Ikari Warriors, Time Soldiers, Heavy Barrel, Forgotten Worlds games like those
    +1
  • Psionic Roshambo @ Psionic Roshambo:
    Not even sure what to call that controller
  • Xdqwerty @ Xdqwerty:
    an online friend I've known since 2021 left me :( bc my attitude is "cutty"
  • Psionic Roshambo @ Psionic Roshambo:
    Sylvester Stallone should have played Kyle Reese lol Arnold still as the Terminator
  • BakerMan @ BakerMan:
    TF DOES "CUTTY" EVEN MEAN?
  • Xdqwerty @ Xdqwerty:
    @BakerMan, he is peruvian so it's probably an idiom
  • BigOnYa @ BigOnYa:
    I thought Cutty was a west coast rapper
  • K3Nv2 @ K3Nv2:
    Cutter
  • Psionic Roshambo @ Psionic Roshambo:
    Dr Cutty
  • Psionic Roshambo @ Psionic Roshambo:
    It's from House MD lol
  • K3Nv2 @ K3Nv2:
    I took too much viagra Dr cutty oh wait
    +1
  • Ligudink @ Ligudink:
    What in the goddamn
    Ligudink @ Ligudink: What in the goddamn