<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.lumasworkshop.com/w/index.php?action=history&amp;feed=atom&amp;title=SEL_%28File_Format%29</id>
	<title>SEL (File Format) - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.lumasworkshop.com/w/index.php?action=history&amp;feed=atom&amp;title=SEL_%28File_Format%29"/>
	<link rel="alternate" type="text/html" href="https://www.lumasworkshop.com/w/index.php?title=SEL_(File_Format)&amp;action=history"/>
	<updated>2026-06-04T05:59:44Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://www.lumasworkshop.com/w/index.php?title=SEL_(File_Format)&amp;diff=1026&amp;oldid=prev</id>
		<title>SY24: created page</title>
		<link rel="alternate" type="text/html" href="https://www.lumasworkshop.com/w/index.php?title=SEL_(File_Format)&amp;diff=1026&amp;oldid=prev"/>
		<updated>2026-04-29T10:22:45Z</updated>

		<summary type="html">&lt;p&gt;created page&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;SEL&amp;#039;&amp;#039;&amp;#039; files are helper tables that accompany RSO files. They link function calls from a module to the main executable (main.dol). &amp;#039;&amp;#039;Super Mario Galaxy&amp;#039;&amp;#039; and &amp;#039;&amp;#039;Super Mario Galaxy 2&amp;#039;&amp;#039; each contain only one SEL file, located in &amp;lt;code&amp;gt;ModuleData/product.sel&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== File specifications ==&lt;br /&gt;
=== Header ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| Byte[8]&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| UInt32?&lt;br /&gt;
| Unknown. 0x16 in SMG, 0x17 in SMG2&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C&lt;br /&gt;
| UInt32&lt;br /&gt;
| Length of header&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| UInt32&lt;br /&gt;
| Offset to [[SEL (File Format)#Executable filename|executable filename]]. Likely disregarded by the code&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| UInt32&lt;br /&gt;
| Length of the executable filename string. Apparently not null terminated?&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| UInt32&lt;br /&gt;
| Unknown. 0x1 in SMG and SMG2&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C&lt;br /&gt;
| Byte[20]&lt;br /&gt;
| Unknown. Likely padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| UInt32&lt;br /&gt;
| Offset to [[SEL (File Format)#Function name list|function name list]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x34&lt;br /&gt;
| Byte[4]&lt;br /&gt;
| Unknown. 0x0 in SMG and SMG2&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| UInt32&lt;br /&gt;
| Offset to function name list (again?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C&lt;br /&gt;
| Byte[4]&lt;br /&gt;
| Unknown. 0x0 in SMG and SMG2&lt;br /&gt;
|-&lt;br /&gt;
| 0x40&lt;br /&gt;
| UInt32&lt;br /&gt;
| Offset to [[SEL (File Format)#Linker table|linker table]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x44&lt;br /&gt;
| UInt32&lt;br /&gt;
| Length of linker table&lt;br /&gt;
|-&lt;br /&gt;
| 0x48&lt;br /&gt;
| UInt32&lt;br /&gt;
| Offset to function name list (again?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C&lt;br /&gt;
| UInt32&lt;br /&gt;
| Offset to function name list (again?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x50&lt;br /&gt;
| Byte[4]&lt;br /&gt;
| Unknown. 0x0 in SMG and SMG2&lt;br /&gt;
|-&lt;br /&gt;
| 0x54&lt;br /&gt;
| UInt32&lt;br /&gt;
| Filesize, padded to the nearest 0x4 but excludes the rest of the file&amp;#039;s padding&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Executable filename ===&lt;br /&gt;
This is a single-entry-table containing the name of the executable that this .sel file links to. &amp;lt;code&amp;gt;product.sel&amp;lt;/code&amp;gt; in SMG and SMG2.&lt;br /&gt;
&lt;br /&gt;
=== Linker table ===&lt;br /&gt;
This table links function names used by the .rso to the main executable (main.dol).&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| UInt32&lt;br /&gt;
| Offset to the function name within the .sel file&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| UInt32&lt;br /&gt;
| Address within the specified section. For 0x1 and 0x2: relative to the section start*. For 0xFFF1: absolute address&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| UInt32&lt;br /&gt;
| Section within the executable (main.dol)&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| UInt32&lt;br /&gt;
| Hash of the function name&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; The section start can be determined by looking at the main.dol executable. Section 1 address is found at offset 0x48, section 2 address is found at offset 0x4C.&lt;br /&gt;
&lt;br /&gt;
=== Function name list ===&lt;br /&gt;
This is a pool of null-terminated strings holding various function names. According to the header this pool is padded to the nearest 0x4.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
The rest of the file is padded to the nearest 0x20.&lt;/div&gt;</summary>
		<author><name>SY24</name></author>
	</entry>
</feed>