<?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=LIT</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=LIT"/>
	<link rel="alternate" type="text/html" href="https://www.3dbrew.org/wiki/Special:Contributions/LIT"/>
	<updated>2026-04-15T12:45:31Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Anti_Time-Travel&amp;diff=17066</id>
		<title>Anti Time-Travel</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Anti_Time-Travel&amp;diff=17066"/>
		<updated>2016-04-20T09:22:59Z</updated>

		<summary type="html">&lt;p&gt;LIT: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Many commercial games, such as Tomodachi Life, all Pokèmon games, etc are capable of &#039;&#039;&#039;telling whether the clock was adjusted&#039;&#039;&#039; while they weren&#039;t running, &#039;&#039;&#039;even for realistic progress of time&#039;&#039;&#039; (new setting in the future from last save).&lt;br /&gt;
&lt;br /&gt;
This is achieved through a peculiarity in the implementation of the real time clock.&lt;br /&gt;
&lt;br /&gt;
The hardware RTC can count between (at least) 2001-1-1 and 2050-12-31.&lt;br /&gt;
&lt;br /&gt;
When the time is normally set, the date in the RTC is set to the start of 2001 (&#039;&#039;and so is the time?&#039;&#039;), and the console saves to NAND (&#039;&#039;where?&#039;&#039;) the time and date difference between the programmed time and the hardware one.&lt;br /&gt;
&lt;br /&gt;
:This also explains the apparently random setting of the date after removing the battery, and why adjusting the clock in [[NAND Redirection|multiboot scenarios]] often results in incorrect values in other OS instances.&lt;br /&gt;
&lt;br /&gt;
Most likely, software disturbed by clock adjustments saves the raw RTC value and, on load, checks whether it has advanced. [[3DS Development Unit Software|CONFIG]] can directly adjust the hardware clock, thus avoiding associated problems.&lt;/div&gt;</summary>
		<author><name>LIT</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BCSAR&amp;diff=13052</id>
		<title>BCSAR</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BCSAR&amp;diff=13052"/>
		<updated>2015-08-16T11:13:45Z</updated>

		<summary type="html">&lt;p&gt;LIT: /* BCSAR Header */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:File formats]]&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
The BCSAR (CTR Sound ARchive) format is the 3DS&#039;s equivalent of the Wii&#039;s BRSAR  format. They&#039;re not the same structures, though, but they do have the same purpose.&lt;br /&gt;
&lt;br /&gt;
BCSAR are located in the RomFS, this is usually stored under &amp;quot;romfs:/sound/&amp;lt;name&amp;gt;.bcsar&amp;quot;. This contains various audio formats, such as CSTM, CWSD, and CWAV.&lt;br /&gt;
&lt;br /&gt;
== BCSAR Header ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  OFFSET&lt;br /&gt;
!  SIZE&lt;br /&gt;
!  DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|  0x0&lt;br /&gt;
|  0x4&lt;br /&gt;
|  MAGIC &amp;quot;CSAR&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|  0x4&lt;br /&gt;
|  0x2&lt;br /&gt;
|  Byte order mark (0xFEFF = Big Endian, 0xFFFE = Little Endian)&lt;br /&gt;
|-&lt;br /&gt;
|  0x6&lt;br /&gt;
|  0x2&lt;br /&gt;
|  Length of BCSAR header&lt;br /&gt;
|-&lt;br /&gt;
|  0x8&lt;br /&gt;
|  0x4&lt;br /&gt;
|  Version&lt;br /&gt;
|-&lt;br /&gt;
|  0xC&lt;br /&gt;
|  0x4&lt;br /&gt;
|  Length of the entire BCSAR (starting from 0x0)&lt;br /&gt;
|-&lt;br /&gt;
|  0x10&lt;br /&gt;
|  0x4&lt;br /&gt;
|  Amount of main partitions in the BCSAR [STRG + INFO + FILE = 0x03 (= 3)]&lt;br /&gt;
|-&lt;br /&gt;
|  0x14&lt;br /&gt;
|  0x4&lt;br /&gt;
|  Partition header length [same for each partition? (ie STRG,INFO,and FILE header lengths)]&lt;br /&gt;
|-&lt;br /&gt;
|  0x18&lt;br /&gt;
|  0x4&lt;br /&gt;
|  Location of STRG partition&lt;br /&gt;
|-&lt;br /&gt;
|  0x1C&lt;br /&gt;
|  0x4&lt;br /&gt;
|  Length of STRG partition&lt;br /&gt;
|-&lt;br /&gt;
|  0x20&lt;br /&gt;
|  0x4&lt;br /&gt;
|  Unknown (always 0x01200000?)&lt;br /&gt;
|-&lt;br /&gt;
|  0x24&lt;br /&gt;
|  0x4&lt;br /&gt;
|  Location of INFO partition&lt;br /&gt;
|-&lt;br /&gt;
|  0x28&lt;br /&gt;
|  0x4&lt;br /&gt;
|  Length of INFO partition&lt;br /&gt;
|-&lt;br /&gt;
|  0x30&lt;br /&gt;
|  0x4&lt;br /&gt;
|  Location of main FILE partition&lt;br /&gt;
|-&lt;br /&gt;
|  0x34&lt;br /&gt;
|  0x4&lt;br /&gt;
|  Length of main FILE partition&lt;br /&gt;
|-&lt;br /&gt;
|  0x38&lt;br /&gt;
|  0x4&lt;br /&gt;
|  Reserved for 4th main partition location?&lt;br /&gt;
|-&lt;br /&gt;
|  0x3C&lt;br /&gt;
|  0x4&lt;br /&gt;
|  Reserved for 4th main partition length?&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Partitions ==&lt;br /&gt;
&lt;br /&gt;
=== STRG ===&lt;br /&gt;
&lt;br /&gt;
STRG contains the names of the audio files in the BCSAR.&lt;br /&gt;
&lt;br /&gt;
Header:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  OFFSET&lt;br /&gt;
!  SIZE&lt;br /&gt;
!  DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|  0x0&lt;br /&gt;
|  0x4&lt;br /&gt;
|  MAGIC &amp;quot;STRG&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|  0x4&lt;br /&gt;
|  0x4&lt;br /&gt;
|  Length of STRG partition (also in CSAR header)&lt;br /&gt;
|-&lt;br /&gt;
|  0x18&lt;br /&gt;
|  0x4&lt;br /&gt;
|  Count of audio names (since each file should have a name you could also say this is essentially a file count)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Then for each name:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  OFFSET&lt;br /&gt;
!  SIZE&lt;br /&gt;
!  DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|  0x0&lt;br /&gt;
|  0x4&lt;br /&gt;
|  Type of the file...?&lt;br /&gt;
|-&lt;br /&gt;
|  0x4&lt;br /&gt;
|  0x4&lt;br /&gt;
|  Offset of the filename...?&lt;br /&gt;
|-&lt;br /&gt;
|  0x8&lt;br /&gt;
|  0x4&lt;br /&gt;
|  Size of the filename&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Then every filename is rawly setted. You can set up a dictionary that contains, using a simple counter, the size of every filename in order. Then, using the same type of counter, get the values of the size of the filename in a correct order.&lt;br /&gt;
=== INFO ===&lt;br /&gt;
&lt;br /&gt;
INFO presumably contains information on the audio files? Possibly used to connect names from STRG to data from FILE?&lt;br /&gt;
&lt;br /&gt;
For now I only know some information in the header for this partition, but I&#039;m working on figuring the rest out.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  OFFSET&lt;br /&gt;
!  SIZE&lt;br /&gt;
!  DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|  0x0&lt;br /&gt;
|  0x4&lt;br /&gt;
|  MAGIC &amp;quot;INFO&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|  0x4&lt;br /&gt;
|  0x4&lt;br /&gt;
|  Length of INFO partition (also in CSAR header)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== FILE ===&lt;br /&gt;
&lt;br /&gt;
FILE contains all of the audio data in the BCSAR.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  OFFSET&lt;br /&gt;
!  SIZE&lt;br /&gt;
!  DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|  0x0&lt;br /&gt;
|  0x4&lt;br /&gt;
|  MAGIC &amp;quot;FILE&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|  0x4&lt;br /&gt;
|  0x4&lt;br /&gt;
|  Length of FILE partition (also in CSAR header)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There isn&#039;t a whole lot else I can document about the FILE partition, since the data in it will most definitely vary depending on the game. (since audio is more than likely to change in each game)&lt;br /&gt;
&lt;br /&gt;
There is no table in FILE so a different partition (presumably INFO) must be used to connect the data in FILE with the names from STRG.&lt;br /&gt;
&lt;br /&gt;
After some more research, there are multiple FILE partitions, but only 1 of them is the &#039;main&#039; FILE partition (it&#039;s the one you get from the BCSAR header). The &#039;main&#039; FILE partition contains all of the other sub FILE partitions.&lt;/div&gt;</summary>
		<author><name>LIT</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=DARC&amp;diff=11801</id>
		<title>DARC</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=DARC&amp;diff=11801"/>
		<updated>2015-03-02T15:46:53Z</updated>

		<summary type="html">&lt;p&gt;LIT: /* File table */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:File formats]]&lt;br /&gt;
This page documents the format of DARC.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
DARC files are archives. Containers of files.&lt;br /&gt;
&lt;br /&gt;
This is very similiar to NARC (the DS archives).&lt;br /&gt;
&lt;br /&gt;
== ARC header ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
!  Offset !!  Size !! Type !!  Description&lt;br /&gt;
|-&lt;br /&gt;
|  0x000 || 4 || char[4] || Magic Number &#039;darc&#039;&lt;br /&gt;
|-&lt;br /&gt;
|  0x004 || 2 || uint16 || Endianess (=0xFFFE: Little)&lt;br /&gt;
|-&lt;br /&gt;
|  0x006 || 2 || uint16 || Header&#039;s length&lt;br /&gt;
|-&lt;br /&gt;
|  0x008 || 4 || uint32 || Version&lt;br /&gt;
|-&lt;br /&gt;
|  0x00C || 4 || uint32 || File&#039;s length&lt;br /&gt;
|-&lt;br /&gt;
|  0x010 || 4 || uint32 || [[DARC#File_table|File table]] offset (from the beginning of the file)&lt;br /&gt;
|-&lt;br /&gt;
|  0x014 || 4 || uint32 || [[DARC#File_table|File table]] length&lt;br /&gt;
|-&lt;br /&gt;
|  0x018 || 4 || uint32 || [[DARC#Files_data|Files data]] offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== File table ===&lt;br /&gt;
&lt;br /&gt;
The file table starts at 0x01C.&lt;br /&gt;
&lt;br /&gt;
Each file struct consists of 3 uint32:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
!  Offset !!  Size !! Type !!  Description&lt;br /&gt;
|-&lt;br /&gt;
|  0x000 || 4 || uint32 || File name offset (from the end of the table) &lt;br /&gt;
&lt;br /&gt;
if (offset &amp;amp; 0x01000000) then this is a folder (i.e. first two nodes &#039;null&#039; &amp;amp; &#039;.&#039;)&lt;br /&gt;
|-&lt;br /&gt;
|  0x004 || 4 || uint32 || File offset&lt;br /&gt;
|-&lt;br /&gt;
|  0x008 || 4 || uint32 || File length&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
  * Folder&#039;s length is the file count.&lt;/div&gt;</summary>
		<author><name>LIT</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=DARC&amp;diff=11489</id>
		<title>DARC</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=DARC&amp;diff=11489"/>
		<updated>2015-01-23T12:19:37Z</updated>

		<summary type="html">&lt;p&gt;LIT: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:File formats]]&lt;br /&gt;
This page documents the format of DARC.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
DARC files are archives. Containers of files.&lt;br /&gt;
&lt;br /&gt;
This is very similiar to NARC (the DS archives).&lt;br /&gt;
&lt;br /&gt;
== ARC header ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
!  Offset !!  Size !! Type !!  Description&lt;br /&gt;
|-&lt;br /&gt;
|  0x000 || 4 || char[4] || Magic Number &#039;darc&#039;&lt;br /&gt;
|-&lt;br /&gt;
|  0x004 || 2 || uint16 || Endianess (=0xFFFE: Little)&lt;br /&gt;
|-&lt;br /&gt;
|  0x006 || 2 || uint16 || Header&#039;s length&lt;br /&gt;
|-&lt;br /&gt;
|  0x008 || 4 || uint32 || Version&lt;br /&gt;
|-&lt;br /&gt;
|  0x00C || 4 || uint32 || File&#039;s length&lt;br /&gt;
|-&lt;br /&gt;
|  0x010 || 4 || uint32 || [[DARC#File_table|File table]] offset (from the beginning of the file)&lt;br /&gt;
|-&lt;br /&gt;
|  0x014 || 4 || uint32 || [[DARC#File_table|File table]] length&lt;br /&gt;
|-&lt;br /&gt;
|  0x018 || 4 || uint32 || [[DARC#Files_data|Files data]] offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== File table ===&lt;br /&gt;
&lt;br /&gt;
The file table starts at 0x01C.&lt;br /&gt;
&lt;br /&gt;
Each file struct consists of 3 uint32:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
!  Offset !!  Size !! Type !!  Description&lt;br /&gt;
|-&lt;br /&gt;
|  0x00C || 4 || uint32 || File name offset (from the end of the table) &lt;br /&gt;
&lt;br /&gt;
if (offset &amp;amp; 0x01000000) then this is a folder (i.e. first two nodes &#039;null&#039; &amp;amp; &#039;.&#039;)&lt;br /&gt;
|-&lt;br /&gt;
|  0x004 || 4 || uint32 || File offset&lt;br /&gt;
|-&lt;br /&gt;
|  0x008 || 4 || uint32 || File length&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
  * Folder&#039;s length is the file count.&lt;/div&gt;</summary>
		<author><name>LIT</name></author>
	</entry>
</feed>