<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.3dbrew.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kaphotics</id>
	<title>3dbrew - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.3dbrew.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kaphotics"/>
	<link rel="alternate" type="text/html" href="https://www.3dbrew.org/wiki/Special:Contributions/Kaphotics"/>
	<updated>2026-04-30T15:47:06Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Makerom&amp;diff=10391</id>
		<title>Makerom</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Makerom&amp;diff=10391"/>
		<updated>2014-11-02T17:15:55Z</updated>

		<summary type="html">&lt;p&gt;Kaphotics: grammar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox homebrew&lt;br /&gt;
| title       = makerom&lt;br /&gt;
| type        = pc utility&lt;br /&gt;
| author      = [[User:3dsguy|3dsguy]]&lt;br /&gt;
| download = https://anonfiles.com/file/2e954a4b954778e8bcd0c317f071c272&lt;br /&gt;
| source = https://github.com/3DSGuy/Project_CTR/tree/master/makerom&lt;br /&gt;
| version     = 0.8&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
makerom is a tool which can be used to create [[NCCH]], [[NCSD|CCI]], and [[CIA]] files.&lt;br /&gt;
&lt;br /&gt;
== Using Makerom ==&lt;br /&gt;
&lt;br /&gt;
=== Command line ===&lt;br /&gt;
Since CCI and CIA are NCCH containers, makerom was built so CXIs could be built stand alone or straight into a container format. It is also possible rebuild CXIs from an ELF file. As a result there are many combinations which can be used; for simplicity, specific functions will be explained by breaking them up into argument groups:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Creating CXIs from scratch:&#039;&#039;&#039;&lt;br /&gt;
 -elf &amp;lt;elf path&amp;gt; -rsf &amp;lt;rsf path&amp;gt; [-icon &amp;lt;[[SMDH|icon]] path&amp;gt; -banner &amp;lt;banner path&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rebuilding CXIs:&#039;&#039;&#039;&lt;br /&gt;
 -code &amp;lt;decompressed exefs .code&amp;gt; -exheader &amp;lt;exheader from original CXI&amp;gt; -rsf &amp;lt;rsf path&amp;gt; [-icon &amp;lt;[[SMDH|icon]] path&amp;gt; -banner &amp;lt;banner path&amp;gt; -romfs &amp;lt;cleartext romfs binary&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Creating CFAs:&#039;&#039;&#039;&lt;br /&gt;
 -f cfa -rsf &amp;lt;rsf path&amp;gt; [-icon &amp;lt;[[SMDH|icon]] path&amp;gt; -romfs &amp;lt;romfs binary&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Creating CCIs:&#039;&#039;&#039;&lt;br /&gt;
 -f cci [-content &amp;lt;path&amp;gt;:&amp;lt;index&amp;gt; ...]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Creating CIAs:&#039;&#039;&#039;&lt;br /&gt;
 -f cia [-content &amp;lt;path&amp;gt;:&amp;lt;index&amp;gt;:&amp;lt;id&amp;gt; ...]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Using Desc presets:&#039;&#039;&#039;&lt;br /&gt;
 -desc &amp;lt;app type&amp;gt;:&amp;lt;firm version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;app type&#039; can be SDApp / ECApp / Demo / DlpChild&lt;br /&gt;
* &#039;firm version&#039; is the target kernel version minor for the intended 3DS system.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Examples:&#039;&#039;&#039;&lt;br /&gt;
Create a CCI, using a manual CFA, and a desc preset:&lt;br /&gt;
 makerom -f cci -elf homebrew.elf -rsf app.rsf -desc sdapp:33 -icon homebrew.icn -banner homebrew.bnr -content manual.cfa:1 -o homebrew.cci&lt;br /&gt;
&lt;br /&gt;
Create a CIA using an already built application CXI and manual CFA:&lt;br /&gt;
 makerom -f cia -content homebrew.cxi:0:0 -content manual.cfa:1:1 -o homebrew.cia&lt;br /&gt;
&lt;br /&gt;
Rebuild a CXI:&lt;br /&gt;
 makerom -code code.bin -exheader exheader.bin -icon icon.bin -banner banner.bin -romfs romfs.bin -rsf app.rsf -desc sdapp:33 -o rebuild.cxi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Creating RSF files ===&lt;br /&gt;
Inspired by Nintendo&#039;s format for their makerom, a yaml configuration file is required for creating NCCH files. CIA/CCI can be created without using a RSF file, but default settings will be used.&lt;br /&gt;
&lt;br /&gt;
For CXI, RSF files can be used to specify permissions, and access control settings. Makerom can use default settings by use of the &amp;quot;-desc&amp;quot; option, which removes the requirement for specifying them in the RSF file.&lt;br /&gt;
&lt;br /&gt;
Sample RSF to be used with &amp;quot;-desc&amp;quot;: [https://gist.githubusercontent.com/3DSGuy/83e12e0ae3dcccb9827f/raw/sample0.rsf download]&lt;br /&gt;
&lt;br /&gt;
Sample RSF to be used without &amp;quot;-desc&amp;quot;: [https://gist.githubusercontent.com/3DSGuy/83e12e0ae3dcccb9827f/raw/sample1.rsf download]&lt;br /&gt;
&lt;br /&gt;
=== Creating ELF files ===&lt;br /&gt;
ELF files that are created using the official SDK can be used with makerom. ELF files created using [https://github.com/smealum/ctrulib ctrulib] can be used, provided they are linked with this linker script: [https://gist.github.com/yellows8/6da7984a80a825b10294 download]&lt;br /&gt;
&lt;br /&gt;
== Compiling Source ==&lt;br /&gt;
For Windows use MinGW, 64bit versions of MinGW are supported also.&lt;br /&gt;
&lt;br /&gt;
For Linux, gcc/g++/make must be installed.&lt;br /&gt;
&lt;br /&gt;
All additional libraries used by makerom are included in the source, and are linked statically.&lt;br /&gt;
&lt;br /&gt;
== Issues ==&lt;br /&gt;
&lt;br /&gt;
* Proper ticket index generation isn&#039;t complete (CIA tickets are valid for only one content)&lt;br /&gt;
* RomFs hasn&#039;t been completely implemented (But valid pre-built romfs can be used as substitute)&lt;/div&gt;</summary>
		<author><name>Kaphotics</name></author>
	</entry>
</feed>