<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://www.iquebrew.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Emoose</id>
	<title>iQueBrew - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://www.iquebrew.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Emoose"/>
	<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=Special:Contributions/Emoose"/>
	<updated>2026-09-23T01:57:00Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.2</generator>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=Content_ID&amp;diff=605</id>
		<title>Content ID</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=Content_ID&amp;diff=605"/>
		<updated>2018-04-06T15:54:17Z</updated>

		<summary type="html">&lt;p&gt;Emoose: Add info about 4 &amp;amp; 8 digit IDs.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Content IDs&amp;#039;&amp;#039;&amp;#039; are numerical codes used by the [[iQue Player]] and [[iQue@Home]] to uniquely identify each game, manual, app and [[SKSA|system update]].&lt;br /&gt;
&lt;br /&gt;
There seem to be two different formats of Content IDs, a 4-digit format used to identify system updates, and a 7/8-digit format used for everything else.&lt;br /&gt;
&lt;br /&gt;
== 4-digit / &amp;quot;Secure Content ID&amp;quot; format ==&lt;br /&gt;
Only used for SKSAs, where each update can have 3 different content IDs associated with it: a content ID to identify the update itself, and separate content IDs for the SA1 and SA2 parts included with it. (eg. SKSA 1106 contains SA1 1095 and SA2 1107)&lt;br /&gt;
&lt;br /&gt;
With this format it seems the last 3 digits are used as the version number, with the first digit assumed to be the ID of the title (always 1).&lt;br /&gt;
&lt;br /&gt;
Note that content IDs in this format can&amp;#039;t be used by themselves to uniquely identify content, for example there are 3 different SA1s that all share the same 1095 content ID, but with differing content hashes.&lt;br /&gt;
&lt;br /&gt;
This format is known as a &amp;quot;Secure Content ID&amp;quot; in the [[depot.sys|depot.sys structure]], though it still gets stored as a normal content ID in the [[Ticket|Ticket structure]].&lt;br /&gt;
&lt;br /&gt;
== 7/8-digit format ==&lt;br /&gt;
Used for games, manuals and apps. Games and manuals always use the 7-digit form, while apps use 8-digits. The system used supports up to 100 versions of 100 titles in 100/1000 genres, and their respective manuals.&lt;br /&gt;
&lt;br /&gt;
As an example of the format, [[Super Mario 64]]&amp;#039;s content ID is &amp;#039;&amp;#039;&amp;#039;1101104&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
* The first, second characters (&amp;#039;&amp;#039;&amp;#039;11&amp;#039;&amp;#039;&amp;#039;01104) define the [[genre]].&lt;br /&gt;
* The third and fourth characters (11&amp;#039;&amp;#039;&amp;#039;01&amp;#039;&amp;#039;&amp;#039;104) actually identify the game, increasing by 1 with each new game in the genre.&lt;br /&gt;
* The fifth character (1101&amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;04) determines the type of content - 1 for a game, 9 for a manual, (and possibly 0 for an app). Other types of content were likely planned.&lt;br /&gt;
* The sixth and seventh characters (11011&amp;#039;&amp;#039;&amp;#039;04&amp;#039;&amp;#039;&amp;#039;) are thought to be the version of the content, though this isn&amp;#039;t definitely confirmed.&lt;br /&gt;
&lt;br /&gt;
(for 8-digit IDs, remove the first digit and assume the genre is &amp;quot;100&amp;quot; or &amp;quot;200&amp;quot; for the format above to work)&lt;br /&gt;
&lt;br /&gt;
Internally, the iQue Player converts the content IDs to hexadecimal (e.g. &amp;#039;&amp;#039;&amp;#039;0010cd30&amp;#039;&amp;#039;&amp;#039; for Super Mario 64) for storing .app, .rec and .sta files.&lt;/div&gt;</summary>
		<author><name>Emoose</name></author>
	</entry>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=Titles&amp;diff=164</id>
		<title>Titles</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=Titles&amp;diff=164"/>
		<updated>2018-03-26T11:41:00Z</updated>

		<summary type="html">&lt;p&gt;Emoose: add ticket status for each title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These are titles downloadable via http://cds.idc.ique.com:16963/cds/download?content_id=xxx, where xxx is replaced with one of the following IDs:&lt;br /&gt;
&lt;br /&gt;
=== Apps ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Content ID&lt;br /&gt;
! Name&lt;br /&gt;
! Have ticket?&lt;br /&gt;
|-&lt;br /&gt;
| 10000001&lt;br /&gt;
| ? (older iQue Club?)&lt;br /&gt;
| N&lt;br /&gt;
|-&lt;br /&gt;
| 10000002&lt;br /&gt;
| ? (older iQue Club?)&lt;br /&gt;
| N&lt;br /&gt;
|-&lt;br /&gt;
| 10000003&lt;br /&gt;
| iQue Club&lt;br /&gt;
| Y&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Games ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Content ID&lt;br /&gt;
! Name&lt;br /&gt;
! Have ticket?&lt;br /&gt;
|-&lt;br /&gt;
| 1101104&lt;br /&gt;
| Super Mario 64&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| 1102101&lt;br /&gt;
| Yoshi Story&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| 1201105&lt;br /&gt;
| Smash Bros&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| 2101104&lt;br /&gt;
| TLoZ: OoT&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| 2102104&lt;br /&gt;
| Paper Mario&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| 21031??&lt;br /&gt;
| TLoZ: MM (not on CDS)&lt;br /&gt;
| N&lt;br /&gt;
|-&lt;br /&gt;
| 2104108&lt;br /&gt;
| Animal Crossing&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| 2105103&lt;br /&gt;
| Custom Robo&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| 2106101&lt;br /&gt;
| ?&lt;br /&gt;
| N&lt;br /&gt;
|-&lt;br /&gt;
| 4101104&lt;br /&gt;
| Star Fox 64 (v4)&lt;br /&gt;
| N&lt;br /&gt;
|-&lt;br /&gt;
| 4101105&lt;br /&gt;
| Star Fox 64 (v5)&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| 4102103&lt;br /&gt;
| Sin &amp;amp; Punishment&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| 5101104&lt;br /&gt;
| Wave Race 64&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| 5102108&lt;br /&gt;
| Excitebike&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| 5201104&lt;br /&gt;
| Mario Kart 64 (v4)&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| 5201105&lt;br /&gt;
| Mario Kart 64 (v5)&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| 5202103&lt;br /&gt;
| F-Zero X&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| 6101104&lt;br /&gt;
| Dr. Mario&lt;br /&gt;
| Y&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Game Manuals ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Content ID&lt;br /&gt;
! Name&lt;br /&gt;
! Have ticket?&lt;br /&gt;
|-&lt;br /&gt;
| 1101902&lt;br /&gt;
| Super Mario 64 (v2)&lt;br /&gt;
| N&lt;br /&gt;
|-&lt;br /&gt;
| 1101906&lt;br /&gt;
| Super Mario 64 (v6)&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| 1102902&lt;br /&gt;
| Yoshi Story (v2)&lt;br /&gt;
| N&lt;br /&gt;
|-&lt;br /&gt;
| 1102904&lt;br /&gt;
| Yoshi Story (v4)&lt;br /&gt;
| N&lt;br /&gt;
|-&lt;br /&gt;
| 1102906&lt;br /&gt;
| Yoshi Story (v6)&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| 1201901&lt;br /&gt;
| Smash Bros&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| 2101902&lt;br /&gt;
| TLoZ: OoT (v2)&lt;br /&gt;
| N&lt;br /&gt;
|-&lt;br /&gt;
| 2101904&lt;br /&gt;
| TLoZ: OoT (v4)&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| 2102902&lt;br /&gt;
| Paper Mario (v2)&lt;br /&gt;
| N&lt;br /&gt;
|-&lt;br /&gt;
| 2102904&lt;br /&gt;
| Paper Mario (v4)&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| 4101902&lt;br /&gt;
| Star Fox 64 (v2)&lt;br /&gt;
| N&lt;br /&gt;
|-&lt;br /&gt;
| 4101904&lt;br /&gt;
| Star Fox 64 (v4)&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| 4102901&lt;br /&gt;
| Sin &amp;amp; Punishment&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| 5101902&lt;br /&gt;
| Wave Race 64 (v2)&lt;br /&gt;
| N&lt;br /&gt;
|-&lt;br /&gt;
| 5101904&lt;br /&gt;
| Wave Race 64 (v4)&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| 5102902&lt;br /&gt;
| Excitebike&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| 5201902&lt;br /&gt;
| Mario Kart 64 (v2)&lt;br /&gt;
| N&lt;br /&gt;
|-&lt;br /&gt;
| 5201906&lt;br /&gt;
| Mario Kart 64 (v6)&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| 5202902&lt;br /&gt;
| F-Zero X (v2)&lt;br /&gt;
| N&lt;br /&gt;
|-&lt;br /&gt;
| 5202904&lt;br /&gt;
| F-Zero X (v4)&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| 6101902&lt;br /&gt;
| Dr. Mario (v2)&lt;br /&gt;
| N&lt;br /&gt;
|-&lt;br /&gt;
| 6101904&lt;br /&gt;
| Dr. Mario (v4)&lt;br /&gt;
| Y&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Emoose</name></author>
	</entry>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=IQue_Player&amp;diff=161</id>
		<title>IQue Player</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=IQue_Player&amp;diff=161"/>
		<updated>2018-03-26T06:27:30Z</updated>

		<summary type="html">&lt;p&gt;Emoose: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:iQue Player}}&lt;br /&gt;
[[File:iQue Player.png|thumb|An &amp;#039;&amp;#039;&amp;#039;iQue Player&amp;#039;&amp;#039;&amp;#039;.]]&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;iQue Player&amp;#039;&amp;#039;&amp;#039; (Chinese: 神游机, lit. &amp;quot;Divine gaming machine&amp;quot;) is a game console created by iQue and BroadOn (formerly Routefree, later iGware, now Acer Cloud) in partnership with Nintendo, only released in China in late 2003. iQue company was co-founded by engineer [https://en.wikipedia.org/wiki/Wei_Yen Dr. Wei Yen], an USA-CHN scientist mainly involved in the development of the N64 GFX chip &amp;quot;Reality Engine&amp;quot;; he is also the founder of ArtX, a company that was commissioned by Nintendo to produce the Game Cube processor named &amp;quot;Flipper&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
The reason for this union was dictated by the fact that, since 2000, the Chinese market &amp;quot;suffered&amp;quot; from a [https://en.wikipedia.org/wiki/Video_gaming_in_China#Changes_to_video_game_ban_in_China ban on gaming consoles] because they were considered harmful to the psyche of children (the ban ceased in 2015); Nintendo needed to circumvent the problem and to be able to insert its consoles in the vast market of China ([https://www.thegamesmachine.it/speciali/72045/time-machine-online-nintendo-cina-ique/ here it is a plausible explanation] on how it seems to have done). The opportunity came with iQue products, of which the &amp;quot;i Que Player&amp;quot; represents the progenitor and corresponds to the Chinese version of the Nintendo 64 (there are also iQue GBA, GBA SP, GB Micro, iQue DS, DS Lite, the iQue 3DS)!&lt;br /&gt;
&lt;br /&gt;
This console is not a normal N64 but a &amp;quot;compressed&amp;quot; version of it in a single chip: based on the Nintendo 64, the iQue Player adds features like [[iQue Card|removable NAND flash]] memory, PC connectivity (via USB), slightly better performance, and 14 different [[games]] translated into Simplified Chinese.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Emoose</name></author>
	</entry>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=IQue_Player&amp;diff=160</id>
		<title>IQue Player</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=IQue_Player&amp;diff=160"/>
		<updated>2018-03-26T06:27:09Z</updated>

		<summary type="html">&lt;p&gt;Emoose: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:iQue Player}}&lt;br /&gt;
[[File:iQue Player.png|thumb|An &amp;#039;&amp;#039;&amp;#039;iQue Player&amp;#039;&amp;#039;&amp;#039;.]]&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;iQue Player&amp;#039;&amp;#039;&amp;#039; (Chinese: 神游机, lit. &amp;quot;Divine gaming machine&amp;quot;) is a game console created by iQue and BroadOn (formerly Routefree, later iGware, now Acer Cloud) in partnership with Nintendo, only released in China in late 2003. iQue company was co-founded by engineer [https://en.wikipedia.org/wiki/Wei_Yen Dr. Wei Yen], an USA-CHN scientist mainly involved in the development of the N64 GFX chip &amp;quot;Reality Engine&amp;quot;; he is also the founder of ArtX, a company that was commissioned by Nintendo to produce the Game Cube processor named &amp;quot;Flipper&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
The reason for this union was dictated by the fact that, since 2000, the Chinese market &amp;quot;suffered&amp;quot; from a [https://en.wikipedia.org/wiki/Video_gaming_in_China#Changes_to_video_game_ban_in_China ban on gaming consoles] because they were considered harmful to the psyche of children (the ban ceased in 2015); Nintendo needed to circumvent the problem and to be able to insert its consoles in the vast market of China ([https://www.thegamesmachine.it/speciali/72045/time-machine-online-nintendo-cina-ique/ here it is a plausible explanation] on how it seems to have done). The opportunity came with iQue products, of which the &amp;quot;i Que Player&amp;quot; represents the progenitor and corresponds to the Chinese version of the Nintendo 64 (there are also iQue GBA, GBA SP, GB Micro, iQue DS, DS Lite, the iQue 3DS)!&lt;br /&gt;
&lt;br /&gt;
This console, is not a normal N64 but a &amp;quot;compressed&amp;quot; version of it in a single chip: based on the Nintendo 64, the iQue Player adds features like [[iQue Card|removable NAND flash]] memory, PC connectivity (via USB), slightly better performance, and 14 different [[games]] translated into Simplified Chinese.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Emoose</name></author>
	</entry>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=IQue_Player&amp;diff=159</id>
		<title>IQue Player</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=IQue_Player&amp;diff=159"/>
		<updated>2018-03-26T06:24:35Z</updated>

		<summary type="html">&lt;p&gt;Emoose: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:iQue Player}}&lt;br /&gt;
[[File:iQue Player.png|thumb|An &amp;#039;&amp;#039;&amp;#039;iQue Player&amp;#039;&amp;#039;&amp;#039;.]]&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;iQue Player&amp;#039;&amp;#039;&amp;#039; is a game console created by iQue and BroadOn (formerly Routefree, later iGware, now Acer Cloud) in partnership with Nintendo, only released in China in late 2003. iQUe company was co-founded by engineer [https://en.wikipedia.org/wiki/Wei_Yen Dr. Wei Yen], an USA-CHN scientist mainly involved in the development of the N64 GFX chip &amp;quot;Reality Engine&amp;quot;; he is also the founder of ArtX, a company that was commissioned by Nintendo to produce the Game Cube processor named &amp;quot;Flipper&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
The reason for this union was dictated by the fact that, since 2000, the Chinese market &amp;quot;suffered&amp;quot; from a [https://en.wikipedia.org/wiki/Video_gaming_in_China#Changes_to_video_game_ban_in_China ban on gaming consoles] because they were considered harmful to the psyche of children (the ban ceased in 2015); Nintendo needed to circumvent the problem and to be able to insert its consoles in the vast market of China ([https://www.thegamesmachine.it/speciali/72045/time-machine-online-nintendo-cina-ique/ here it is a plausible explanation] on how it seems to have done). The opportunity came with iQue products, of which the &amp;quot;i Que Player&amp;quot; represents the progenitor and corresponds to the Chinese version of the Nintendo 64 (there are also iQue GBA, GBA SP, GB Micro, iQue DS, DS Lite, the iQue 3DS)!&lt;br /&gt;
&lt;br /&gt;
This console, whose name in Chinese means &amp;quot;Divine gaming machine&amp;quot;, is not a normal N64 but a &amp;quot;compressed&amp;quot; version of it in a single chip: based on the Nintendo 64, the iQue Player adds features like [[iQue Card|removable NAND flash]] memory, PC connectivity (via USB), slightly better performance, and 14 different [[games]] translated into Simplified Chinese.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Emoose</name></author>
	</entry>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=IQue_Player&amp;diff=158</id>
		<title>IQue Player</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=IQue_Player&amp;diff=158"/>
		<updated>2018-03-26T05:31:40Z</updated>

		<summary type="html">&lt;p&gt;Emoose: link to iQue Card instead of NAND&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:iQue Player}}&lt;br /&gt;
[[File:iQue Player.png|thumb|An &amp;#039;&amp;#039;&amp;#039;iQue Player&amp;#039;&amp;#039;&amp;#039;.]]&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;iQue Player&amp;#039;&amp;#039;&amp;#039; is a game console created by iQue and BroadOn (formerly Routefree, later iGware, now Acer Cloud) in partnership with Nintendo, only released in China in late 2003. iQUe company was co-founded by engineer [https://en.wikipedia.org/wiki/Wei_Yen Dr. Wei Yen], an USA-CHN scientist mainly involved in the development of the N64 GFX chip &amp;quot;Reality Engine&amp;quot;; he is also the founder of ArtX, a company that was commissioned by Nintendo to produce the Game Cube processor named &amp;quot;Flipper&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
The reason for this union was dictated by the fact that, since 2000, the Chinese market &amp;quot;suffered&amp;quot; from a [https://en.wikipedia.org/wiki/Video_gaming_in_China#Changes_to_video_game_ban_in_China ban on gaming consoles] because they were considered harmful to the psyche of children (the ban ceased in 2015); Nintendo needed to circumvent the problem and to be able to insert its consoles in the vast market of China ([https://www.thegamesmachine.it/speciali/72045/time-machine-online-nintendo-cina-ique/ here it is a plausible explanation] on how it seems to have done). The opportunity came with iQue products, of which the &amp;quot;i Que Player&amp;quot; represents the progenitor and corresponds to the Chinese version of the Nintendo 64 (there are also iQue GBA, GBA SP, GB Micro, iQue DS, DS Lite, the iQue 3DS)!&lt;br /&gt;
&lt;br /&gt;
This console, whose name in Chinese means &amp;quot;Divine gaming machine&amp;quot;, is not a normal N64 but a &amp;quot;compressed&amp;quot; version of it in a single chip: based on the Nintendo 64, the iQue Player adds features like [[iQue Card|removable NAND flash]] memory, PC connectivity (via USB), slightly better performance, and 14 different [[games]] translated into Simplified Chinese.&lt;/div&gt;</summary>
		<author><name>Emoose</name></author>
	</entry>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=IQue_Card&amp;diff=92</id>
		<title>IQue Card</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=IQue_Card&amp;diff=92"/>
		<updated>2018-03-25T03:40:31Z</updated>

		<summary type="html">&lt;p&gt;Emoose: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:IQue_card_disassembled.jpg|thumb|A disassembled &amp;#039;&amp;#039;&amp;#039;iQue Card&amp;#039;&amp;#039;&amp;#039;.]]&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;iQue Card&amp;#039;&amp;#039;&amp;#039; is a removable memory card used to store games &amp;amp; the [[SKSA|&amp;quot;Upgradable Operating System&amp;quot;]].&lt;br /&gt;
&lt;br /&gt;
The card is housed in a plastic shell, which contains a Samsung K9F1208U0M-YCB0 NAND chip on a special PCB codenamed &amp;quot;DOOKIE&amp;quot;. The contents of the NAND are documented on the [[NAND]] page.&lt;br /&gt;
&lt;br /&gt;
== DOOKIE ==&lt;br /&gt;
The DOOKIE board is very basic, containing the NAND flash, a few resistors, and an edge connector for connecting with the main system. The connector has a 1.1mm pitch and seems to be custom made, no other commonly-available connector appears to fit it, other than MicroSD.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Emoose</name></author>
	</entry>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=File:IQue_card_disassembled.jpg&amp;diff=91</id>
		<title>File:IQue card disassembled.jpg</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=File:IQue_card_disassembled.jpg&amp;diff=91"/>
		<updated>2018-03-25T03:39:59Z</updated>

		<summary type="html">&lt;p&gt;Emoose: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Emoose</name></author>
	</entry>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=Ticket&amp;diff=90</id>
		<title>Ticket</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=Ticket&amp;diff=90"/>
		<updated>2018-03-24T23:54:37Z</updated>

		<summary type="html">&lt;p&gt;Emoose: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An iQue &amp;#039;&amp;#039;&amp;#039;Ticket&amp;#039;&amp;#039;&amp;#039; is used to store data about a piece of content, such as the size, hash and ID. It&amp;#039;s used as part of the [[SKSA]] (for info about the SA1/SA2) and also used as part of the [[Title Data]] structure (for info about the game title). &lt;br /&gt;
&lt;br /&gt;
Each ticket is signed via RSA-2048 using a CP (content protection?) certificate, the method for signing/verifying has been found for SA1/SA2, but game tickets don&amp;#039;t seem to work. It&amp;#039;s likely that some part of the structure is changed in memory just before the iQue validates it.&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
The ticket format is similar to a [http://wiibrew.org/wiki/Ticket Wii ticket], though it seems the structure was reworked sometime between the iQue and Wii.&lt;br /&gt;
&lt;br /&gt;
It&amp;#039;s assumed that the title key needed to decrypt an SA / .app is part of the structure, though likely encrypted with a common-key that&amp;#039;s yet to be dumped from the console.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Length&lt;br /&gt;
! Type&lt;br /&gt;
! Information&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| bytes&lt;br /&gt;
| Unknown (always 0?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| int32&lt;br /&gt;
| Unknown (always 1?)&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| uint32&lt;br /&gt;
| Content Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| int32&lt;br /&gt;
| Unknown (0 for tickets, 1 for SA?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x10&lt;br /&gt;
| bytes&lt;br /&gt;
| Unknown (possible title-key)&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x14&lt;br /&gt;
| bytes&lt;br /&gt;
| Content hash (hash of the decrypted content)&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x10&lt;br /&gt;
| bytes&lt;br /&gt;
| Unknown (&amp;#039;&amp;#039;&amp;#039;very possible title-key&amp;#039;&amp;#039;&amp;#039;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x48&lt;br /&gt;
| 0x4&lt;br /&gt;
| int32&lt;br /&gt;
| Unknown (2 for game tickets, 0 for SA/iQue Club ticket?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C&lt;br /&gt;
| 0x4&lt;br /&gt;
| int32&lt;br /&gt;
| Unknown (0 for games, 0x13 for iQue Club, 0x1F7/0x1B3 for SA)&lt;br /&gt;
|-&lt;br /&gt;
| 0x50&lt;br /&gt;
| 0x4&lt;br /&gt;
| int32&lt;br /&gt;
| Unknown (0x4000 for games, 0x6001 for iQue Club, -1 for normal SAs, 0xE01 for weird SAs?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x54&lt;br /&gt;
| 0x4&lt;br /&gt;
| int32&lt;br /&gt;
| Unknown (always 0?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x58&lt;br /&gt;
| 0x40&lt;br /&gt;
| chars&lt;br /&gt;
| Authority (cert used to sign ticket)&lt;br /&gt;
|-&lt;br /&gt;
| 0x98&lt;br /&gt;
| 0x4&lt;br /&gt;
| uint32&lt;br /&gt;
| Content ID (can&amp;#039;t be higher than 99999999, if (cid / 100) % 10 == 9, this is a game manual)&lt;br /&gt;
|-&lt;br /&gt;
| 0x9C&lt;br /&gt;
| 0x10&lt;br /&gt;
| bytes&lt;br /&gt;
| Unknown (possible title-key - contents change between devices, but signature remains the same???)&lt;br /&gt;
|-&lt;br /&gt;
| 0xAC&lt;br /&gt;
| 0x100&lt;br /&gt;
| bytes&lt;br /&gt;
| RSA-2048 signature&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In different SAs which seem to have matching bytes in the encrypted data, the field at 0x38 seems to be the only constant between them, likely our best suspect for the title-key.&lt;br /&gt;
&lt;br /&gt;
== Signature ==&lt;br /&gt;
The signature is made from a SHA1 hash of 0x0 - 0xAC. In SA1/SA2 this hash seems to be valid for the given signature, but for some reason game tickets don&amp;#039;t seem to validate.&lt;br /&gt;
&lt;br /&gt;
Comparing tickets for the same game from two different devices, the area at 0x9C-0xAC seems to completely change, while the actual signature remains the same. It&amp;#039;s likely that this area is probably decrypted using a per-device key just before verification.&lt;br /&gt;
&lt;br /&gt;
=== Fake Signing ===&lt;br /&gt;
As the iQue is so similar to Wii it was guessed that fake-signing may be possible. Sadly tests done with SA1 tickets have all been unsuccessful, though it could be possible that the way SK validates signatures is completely different to how SA1/SA2 validates them (it may be that SK uses an Assembly version for validation, while SA1/SA2 use the C version shared with the Wii, though this is all just speculation at this point)&lt;br /&gt;
&lt;br /&gt;
[[Category:File formats]]&lt;/div&gt;</summary>
		<author><name>Emoose</name></author>
	</entry>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=Titles&amp;diff=85</id>
		<title>Titles</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=Titles&amp;diff=85"/>
		<updated>2018-03-24T19:45:24Z</updated>

		<summary type="html">&lt;p&gt;Emoose: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These are titles downloadable via http://cds.idc.ique.com:16963/cds/download?content_id=xxx, where xxx is replaced with one of the following IDs:&lt;br /&gt;
&lt;br /&gt;
=== Apps ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:30%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Content ID&lt;br /&gt;
! Name&lt;br /&gt;
|-&lt;br /&gt;
| 10000001&lt;br /&gt;
| ? (older iQue Club?)&lt;br /&gt;
|-&lt;br /&gt;
| 10000002&lt;br /&gt;
| ? (older iQue Club?)&lt;br /&gt;
|-&lt;br /&gt;
| 10000003&lt;br /&gt;
| iQue Club&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Games ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:30%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Content ID&lt;br /&gt;
! Name&lt;br /&gt;
|-&lt;br /&gt;
| 1101104&lt;br /&gt;
| Super Mario 64&lt;br /&gt;
|-&lt;br /&gt;
| 1102101&lt;br /&gt;
| Yoshi Story&lt;br /&gt;
|-&lt;br /&gt;
| 1201105&lt;br /&gt;
| Smash Bros&lt;br /&gt;
|-&lt;br /&gt;
| 2101104&lt;br /&gt;
| TLoZ: OoT&lt;br /&gt;
|-&lt;br /&gt;
| 2102104&lt;br /&gt;
| Paper Mario&lt;br /&gt;
|-&lt;br /&gt;
| 21031&lt;br /&gt;
| TLoZ: MM&lt;br /&gt;
|-&lt;br /&gt;
| 2104108&lt;br /&gt;
| Animal Crossing&lt;br /&gt;
|-&lt;br /&gt;
| 2105103&lt;br /&gt;
| Custom Robo&lt;br /&gt;
|-&lt;br /&gt;
| 2106101&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 4101104&lt;br /&gt;
| Star Fox 64 (v4)&lt;br /&gt;
|-&lt;br /&gt;
| 4101105&lt;br /&gt;
| Star Fox 64 (v5)&lt;br /&gt;
|-&lt;br /&gt;
| 4102103&lt;br /&gt;
| Sin &amp;amp; Punishment&lt;br /&gt;
|-&lt;br /&gt;
| 5101104&lt;br /&gt;
| Wave Race 64&lt;br /&gt;
|-&lt;br /&gt;
| 5102108&lt;br /&gt;
| Excitebike&lt;br /&gt;
|-&lt;br /&gt;
| 5201104&lt;br /&gt;
| Mario Kart 64 (v4)&lt;br /&gt;
|-&lt;br /&gt;
| 5201105&lt;br /&gt;
| Mario Kart 64 (v5)&lt;br /&gt;
|-&lt;br /&gt;
| 5202103&lt;br /&gt;
| F-Zero X&lt;br /&gt;
|-&lt;br /&gt;
| 6101104&lt;br /&gt;
| Dr. Mario&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Game Manuals ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:30%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Content ID&lt;br /&gt;
! Name&lt;br /&gt;
|-&lt;br /&gt;
| 1101902&lt;br /&gt;
| Super Mario 64 (v2)&lt;br /&gt;
|-&lt;br /&gt;
| 1101906&lt;br /&gt;
| Super Mario 64 (v6)&lt;br /&gt;
|-&lt;br /&gt;
| 1102902&lt;br /&gt;
| Yoshi Story (v2)&lt;br /&gt;
|-&lt;br /&gt;
| 1102904&lt;br /&gt;
| Yoshi Story (v4)&lt;br /&gt;
|-&lt;br /&gt;
| 1102906&lt;br /&gt;
| Yoshi Story (v6)&lt;br /&gt;
|-&lt;br /&gt;
| 1201901&lt;br /&gt;
| Smash Bros&lt;br /&gt;
|-&lt;br /&gt;
| 2101902&lt;br /&gt;
| TLoZ: OoT (v2)&lt;br /&gt;
|-&lt;br /&gt;
| 2101904&lt;br /&gt;
| TLoZ: OoT (v4)&lt;br /&gt;
|-&lt;br /&gt;
| 2102902&lt;br /&gt;
| Paper Mario (v2)&lt;br /&gt;
|-&lt;br /&gt;
| 2102904&lt;br /&gt;
| Paper Mario (v4)&lt;br /&gt;
|-&lt;br /&gt;
| 4101902&lt;br /&gt;
| Star Fox 64 (v2)&lt;br /&gt;
|-&lt;br /&gt;
| 4101904&lt;br /&gt;
| Star Fox 64 (v4)&lt;br /&gt;
|-&lt;br /&gt;
| 4102901&lt;br /&gt;
| Sin &amp;amp; Punishment&lt;br /&gt;
|-&lt;br /&gt;
| 5101902&lt;br /&gt;
| Wave Race 64 (v2)&lt;br /&gt;
|-&lt;br /&gt;
| 5101904&lt;br /&gt;
| Wave Race 64 (v4)&lt;br /&gt;
|-&lt;br /&gt;
| 5102902&lt;br /&gt;
| Excitebike&lt;br /&gt;
|-&lt;br /&gt;
| 5201902&lt;br /&gt;
| Mario Kart 64 (v2)&lt;br /&gt;
|-&lt;br /&gt;
| 5201906&lt;br /&gt;
| Mario Kart 64 (v6)&lt;br /&gt;
|-&lt;br /&gt;
| 5202902&lt;br /&gt;
| F-Zero X (v2)&lt;br /&gt;
|-&lt;br /&gt;
| 5202904&lt;br /&gt;
| F-Zero X (v4)&lt;br /&gt;
|-&lt;br /&gt;
| 6101902&lt;br /&gt;
| Dr. Mario (v2)&lt;br /&gt;
|-&lt;br /&gt;
| 6101904&lt;br /&gt;
| Dr. Mario (v4)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Emoose</name></author>
	</entry>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=Titles&amp;diff=84</id>
		<title>Titles</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=Titles&amp;diff=84"/>
		<updated>2018-03-24T19:41:10Z</updated>

		<summary type="html">&lt;p&gt;Emoose: reformat page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These are titles downloadable via http://cds.idc.ique.com:16963/cds/download?content_id=xxx, where xxx is replaced with one of the following IDs:&lt;br /&gt;
&lt;br /&gt;
=== Apps ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:30%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Content ID&lt;br /&gt;
! Name&lt;br /&gt;
|-&lt;br /&gt;
| 10000001&lt;br /&gt;
| ? (older iQue Club?)&lt;br /&gt;
|-&lt;br /&gt;
| 10000002&lt;br /&gt;
| ? (older iQue Club?)&lt;br /&gt;
|-&lt;br /&gt;
| 10000003&lt;br /&gt;
| iQue Club&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Games ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:30%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Content ID&lt;br /&gt;
! Name&lt;br /&gt;
|-&lt;br /&gt;
| 1101104&lt;br /&gt;
| Super Mario 64&lt;br /&gt;
|-&lt;br /&gt;
| 1102101&lt;br /&gt;
| Yoshi Story&lt;br /&gt;
|-&lt;br /&gt;
| 1201105&lt;br /&gt;
| Smash Bros&lt;br /&gt;
|-&lt;br /&gt;
| 2101104&lt;br /&gt;
| TLoZ: OoT&lt;br /&gt;
|-&lt;br /&gt;
| 2102104&lt;br /&gt;
| Paper Mario&lt;br /&gt;
|-&lt;br /&gt;
| 21031&lt;br /&gt;
| TLoZ: MM&lt;br /&gt;
|-&lt;br /&gt;
| 2104108&lt;br /&gt;
| Animal Crossing&lt;br /&gt;
|-&lt;br /&gt;
| 2105103&lt;br /&gt;
| Custom Robo&lt;br /&gt;
|-&lt;br /&gt;
| 2106101&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 4101104&lt;br /&gt;
| Star Fox 64 (v4)&lt;br /&gt;
|-&lt;br /&gt;
| 4101105&lt;br /&gt;
| Star Fox 64 (v5)&lt;br /&gt;
|-&lt;br /&gt;
| 4102103&lt;br /&gt;
| Sin &amp;amp; Punishment&lt;br /&gt;
|-&lt;br /&gt;
| 5101104&lt;br /&gt;
| Wave Race 64&lt;br /&gt;
|-&lt;br /&gt;
| 5102108&lt;br /&gt;
| Excitebike&lt;br /&gt;
|-&lt;br /&gt;
| 5201104&lt;br /&gt;
| Mario Kart 64 (v4)&lt;br /&gt;
|-&lt;br /&gt;
| 5201105&lt;br /&gt;
| Mario Kart 64 (v5)&lt;br /&gt;
|-&lt;br /&gt;
| 5202103&lt;br /&gt;
| F-Zero X&lt;br /&gt;
|-&lt;br /&gt;
| 6101104&lt;br /&gt;
| Dr. Mario&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Game Manuals ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:30%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 1101902&lt;br /&gt;
| Super Mario 64 (v2)&lt;br /&gt;
|-&lt;br /&gt;
| 1101906&lt;br /&gt;
| Super Mario 64 (v6)&lt;br /&gt;
|-&lt;br /&gt;
| 1102902&lt;br /&gt;
| Yoshi Story (v2)&lt;br /&gt;
|-&lt;br /&gt;
| 1102904&lt;br /&gt;
| Yoshi Story (v4)&lt;br /&gt;
|-&lt;br /&gt;
| 1102906&lt;br /&gt;
| Yoshi Story (v6)&lt;br /&gt;
|-&lt;br /&gt;
| 1201901&lt;br /&gt;
| Smash Bros&lt;br /&gt;
|-&lt;br /&gt;
| 2101902&lt;br /&gt;
| TLoZ: OoT (v2)&lt;br /&gt;
|-&lt;br /&gt;
| 2101904&lt;br /&gt;
| TLoZ: OoT (v4)&lt;br /&gt;
|-&lt;br /&gt;
| 2102902&lt;br /&gt;
| Paper Mario (v2)&lt;br /&gt;
|-&lt;br /&gt;
| 2102904&lt;br /&gt;
| Paper Mario (v4)&lt;br /&gt;
|-&lt;br /&gt;
| 4101902&lt;br /&gt;
| Star Fox 64 (v2)&lt;br /&gt;
|-&lt;br /&gt;
| 4101904&lt;br /&gt;
| Star Fox 64 (v4)&lt;br /&gt;
|-&lt;br /&gt;
| 4102901&lt;br /&gt;
| Sin &amp;amp; Punishment&lt;br /&gt;
|-&lt;br /&gt;
| 5101902&lt;br /&gt;
| Wave Race 64 (v2)&lt;br /&gt;
|-&lt;br /&gt;
| 5101904&lt;br /&gt;
| Wave Race 64 (v4)&lt;br /&gt;
|-&lt;br /&gt;
| 5102902&lt;br /&gt;
| Excitebike&lt;br /&gt;
|-&lt;br /&gt;
| 5201902&lt;br /&gt;
| Mario Kart 64 (v2)&lt;br /&gt;
|-&lt;br /&gt;
| 5201906&lt;br /&gt;
| Mario Kart 64 (v6)&lt;br /&gt;
|-&lt;br /&gt;
| 5202902&lt;br /&gt;
| F-Zero X (v2)&lt;br /&gt;
|-&lt;br /&gt;
| 5202904&lt;br /&gt;
| F-Zero X (v4)&lt;br /&gt;
|-&lt;br /&gt;
| 6101902&lt;br /&gt;
| Dr. Mario (v2)&lt;br /&gt;
|-&lt;br /&gt;
| 6101904&lt;br /&gt;
| Dr. Mario (v4)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Emoose</name></author>
	</entry>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=Main_Page/Navigation&amp;diff=81</id>
		<title>Main Page/Navigation</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=Main_Page/Navigation&amp;diff=81"/>
		<updated>2018-03-24T19:27:25Z</updated>

		<summary type="html">&lt;p&gt;Emoose: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Main page box|Navigation|:Navigation}}&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: -.3em -1em -1em -1em;&amp;quot;&amp;gt;&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; bgcolor=&amp;quot;#fff&amp;quot; border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2px&amp;quot; cellspacing=&amp;quot;2px&amp;quot; style=&amp;quot;margin:auto;&amp;quot;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;#e7eef6&amp;quot;&lt;br /&gt;
! width=&amp;quot;33%&amp;quot; | &amp;#039;&amp;#039;&amp;#039;General&amp;#039;&amp;#039;&amp;#039; &amp;lt;!-- Stuff not directly related to reverse-engineering, system documentation, and homebrew --&amp;gt;&lt;br /&gt;
! width=&amp;quot;33%&amp;quot; | &amp;#039;&amp;#039;&amp;#039;Homebrew&amp;#039;&amp;#039;&amp;#039; &amp;lt;!-- Hardware and its interfaces --&amp;gt;&lt;br /&gt;
! width=&amp;quot;33%&amp;quot; | &amp;#039;&amp;#039;&amp;#039;Hardware/Software&amp;#039;&amp;#039;&amp;#039; &amp;lt;!-- Software --&amp;gt;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; style=&amp;quot;background: #F5FAFF;&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
*[[Glossary]]&lt;br /&gt;
*[[Games]]&lt;br /&gt;
*[[:Category:PC utilities|PC Utilities]]&lt;br /&gt;
|&lt;br /&gt;
*[[Homebrew Exploits]]&lt;br /&gt;
*[[Homebrew Applications]]&lt;br /&gt;
*[[Homebrew Libraries and Tools]]&lt;br /&gt;
*[[System Flaws]]&lt;br /&gt;
|&lt;br /&gt;
*[[:Category:Hardware|Hardware]]&lt;br /&gt;
*[[IQue Player|Player Overview]] ([[IO|IO registers]])&lt;br /&gt;
*[[IQue Card|Memory Card]]&lt;br /&gt;
*[[:Category:File_formats|File Formats]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{box-footer-empty}}&lt;/div&gt;</summary>
		<author><name>Emoose</name></author>
	</entry>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=IQue_Card&amp;diff=80</id>
		<title>IQue Card</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=IQue_Card&amp;diff=80"/>
		<updated>2018-03-24T19:26:21Z</updated>

		<summary type="html">&lt;p&gt;Emoose: Created page with &amp;quot;The &amp;#039;&amp;#039;&amp;#039;iQue Card&amp;#039;&amp;#039;&amp;#039; is a removable memory card used to store games &amp;amp; the &amp;quot;Upgradable Operating System&amp;quot;.  The card is housed in a plastic shell, which contains a Samsu...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &amp;#039;&amp;#039;&amp;#039;iQue Card&amp;#039;&amp;#039;&amp;#039; is a removable memory card used to store games &amp;amp; the [[SKSA|&amp;quot;Upgradable Operating System&amp;quot;]].&lt;br /&gt;
&lt;br /&gt;
The card is housed in a plastic shell, which contains a Samsung K9F1208U0M-YCB0 NAND chip on a special PCB codenamed &amp;quot;DOOKIE&amp;quot;. The contents of the NAND are documented on the [[NAND]] page.&lt;br /&gt;
&lt;br /&gt;
== DOOKIE ==&lt;br /&gt;
The DOOKIE board is very basic, containing the NAND flash, a few resistors, and an edge connector for connecting with the main system. The connector has a 1.1mm pitch and seems to be custom made, no other commonly-available connector appears to fit it, other than MicroSD.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Emoose</name></author>
	</entry>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=IQue_Depot&amp;diff=79</id>
		<title>IQue Depot</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=IQue_Depot&amp;diff=79"/>
		<updated>2018-03-24T19:03:41Z</updated>

		<summary type="html">&lt;p&gt;Emoose: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;https://i.imgur.com/nwQ8SNZ.jpg&lt;br /&gt;
&lt;br /&gt;
The iQue depot is a physical kiosk that allows users to buy games and updates. Each game comes with a game code that can be used so the user can download the game. Players can also store their games on the iQue Depot network for free. Users must be a member of the iQue Club and have a special iQue Ticket to download games (source: [https://en.wikipedia.org/wiki/IQue_Player#iQue_Depot wikipedia]).&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Emoose</name></author>
	</entry>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=Category:Hardware&amp;diff=78</id>
		<title>Category:Hardware</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=Category:Hardware&amp;diff=78"/>
		<updated>2018-03-24T19:02:33Z</updated>

		<summary type="html">&lt;p&gt;Emoose: Created page with &amp;quot;Various pieces of hardware were released for the iQue, such as the player itself &amp;amp; the SWIM attachment (allowing for extra controllers to be connected to a single unit). Priva...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Various pieces of hardware were released for the iQue, such as the player itself &amp;amp; the SWIM attachment (allowing for extra controllers to be connected to a single unit). Privately, devices like the iQue Depot were given (rented?) to certain stores, allowing users to buy and download games to their iQue Player Card.&lt;/div&gt;</summary>
		<author><name>Emoose</name></author>
	</entry>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=Main_Page/Navigation&amp;diff=77</id>
		<title>Main Page/Navigation</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=Main_Page/Navigation&amp;diff=77"/>
		<updated>2018-03-24T18:59:49Z</updated>

		<summary type="html">&lt;p&gt;Emoose: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Main page box|Navigation|:Navigation}}&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: -.3em -1em -1em -1em;&amp;quot;&amp;gt;&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; bgcolor=&amp;quot;#fff&amp;quot; border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2px&amp;quot; cellspacing=&amp;quot;2px&amp;quot; style=&amp;quot;margin:auto;&amp;quot;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;#e7eef6&amp;quot;&lt;br /&gt;
! width=&amp;quot;33%&amp;quot; | &amp;#039;&amp;#039;&amp;#039;General&amp;#039;&amp;#039;&amp;#039; &amp;lt;!-- Stuff not directly related to reverse-engineering, system documentation, and homebrew --&amp;gt;&lt;br /&gt;
! width=&amp;quot;33%&amp;quot; | &amp;#039;&amp;#039;&amp;#039;Homebrew&amp;#039;&amp;#039;&amp;#039; &amp;lt;!-- Hardware and its interfaces --&amp;gt;&lt;br /&gt;
! width=&amp;quot;33%&amp;quot; | &amp;#039;&amp;#039;&amp;#039;Hardware/Software&amp;#039;&amp;#039;&amp;#039; &amp;lt;!-- Software --&amp;gt;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; style=&amp;quot;background: #F5FAFF;&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
*[[Glossary]]&lt;br /&gt;
*[[Games]]&lt;br /&gt;
*[[:Category:PC utilities|PC Utilities]]&lt;br /&gt;
|&lt;br /&gt;
*[[Homebrew Exploits]]&lt;br /&gt;
*[[Homebrew Applications]]&lt;br /&gt;
*[[Homebrew Libraries and Tools]]&lt;br /&gt;
*[[System Flaws]]&lt;br /&gt;
|&lt;br /&gt;
*[[:Category:Hardware|Hardware]]&lt;br /&gt;
*[[IQue Player|Player Overview]] ([[IO|IO registers]])&lt;br /&gt;
*[[Memory Cards]]&lt;br /&gt;
*[[:Category:File_formats|File Formats]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{box-footer-empty}}&lt;/div&gt;</summary>
		<author><name>Emoose</name></author>
	</entry>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=IQue_Player&amp;diff=76</id>
		<title>IQue Player</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=IQue_Player&amp;diff=76"/>
		<updated>2018-03-24T18:59:33Z</updated>

		<summary type="html">&lt;p&gt;Emoose: initial commit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &amp;#039;&amp;#039;&amp;#039;iQue Player&amp;#039;&amp;#039;&amp;#039; is a game console created by iQue in partnership with Nintendo, released only in China. Based on the N64, it adds features like removable [[NAND]] flash memory, PC connectivity (via USB), slightly better performance &amp;amp; exclusive Chinese-translated games.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Emoose</name></author>
	</entry>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=Main_Page/Navigation&amp;diff=75</id>
		<title>Main Page/Navigation</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=Main_Page/Navigation&amp;diff=75"/>
		<updated>2018-03-24T18:56:44Z</updated>

		<summary type="html">&lt;p&gt;Emoose: add hardware category to main page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Main page box|Navigation|:Navigation}}&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: -.3em -1em -1em -1em;&amp;quot;&amp;gt;&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; bgcolor=&amp;quot;#fff&amp;quot; border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2px&amp;quot; cellspacing=&amp;quot;2px&amp;quot; style=&amp;quot;margin:auto;&amp;quot;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;#e7eef6&amp;quot;&lt;br /&gt;
! width=&amp;quot;33%&amp;quot; | &amp;#039;&amp;#039;&amp;#039;General&amp;#039;&amp;#039;&amp;#039; &amp;lt;!-- Stuff not directly related to reverse-engineering, system documentation, and homebrew --&amp;gt;&lt;br /&gt;
! width=&amp;quot;33%&amp;quot; | &amp;#039;&amp;#039;&amp;#039;Homebrew&amp;#039;&amp;#039;&amp;#039; &amp;lt;!-- Hardware and its interfaces --&amp;gt;&lt;br /&gt;
! width=&amp;quot;33%&amp;quot; | &amp;#039;&amp;#039;&amp;#039;Hardware/Software&amp;#039;&amp;#039;&amp;#039; &amp;lt;!-- Software --&amp;gt;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; style=&amp;quot;background: #F5FAFF;&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
*[[Glossary]]&lt;br /&gt;
*[[Games]]&lt;br /&gt;
*[[:Category:PC utilities|PC Utilities]]&lt;br /&gt;
|&lt;br /&gt;
*[[Homebrew Exploits]]&lt;br /&gt;
*[[Homebrew Applications]]&lt;br /&gt;
*[[Homebrew Libraries and Tools]]&lt;br /&gt;
*[[System Flaws]]&lt;br /&gt;
|&lt;br /&gt;
*[[:Category:Hardware|Hardware]]&lt;br /&gt;
*[[Hardware|Player Overview]] ([[IO|IO registers]])&lt;br /&gt;
*[[Memory Cards]]&lt;br /&gt;
*[[:Category:File_formats|File Formats]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{box-footer-empty}}&lt;/div&gt;</summary>
		<author><name>Emoose</name></author>
	</entry>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=Ticket&amp;diff=64</id>
		<title>Ticket</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=Ticket&amp;diff=64"/>
		<updated>2018-03-24T17:55:16Z</updated>

		<summary type="html">&lt;p&gt;Emoose: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An iQue &amp;#039;&amp;#039;&amp;#039;Ticket&amp;#039;&amp;#039;&amp;#039; is used to store data about a piece of content, such as the size, hash and ID. It&amp;#039;s used as part of the [[SKSA]] (for info about the SA1/SA2) and also used as part of the [[Title Data]] structure (for info about the game title). &lt;br /&gt;
&lt;br /&gt;
Each ticket is signed via RSA-2048 using a CP (content protection?) certificate.&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
The ticket format is similar to a [http://wiibrew.org/wiki/Ticket Wii ticket], though it seems the structure was reworked sometime between the iQue and Wii.&lt;br /&gt;
&lt;br /&gt;
It&amp;#039;s assumed that the title key needed to decrypt an SA / .app is part of the structure, though likely encrypted with a common-key that&amp;#039;s yet to be dumped from the console.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Length&lt;br /&gt;
! Type&lt;br /&gt;
! Information&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| bytes&lt;br /&gt;
| Unknown (always 0?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| int32&lt;br /&gt;
| Unknown (always 1?)&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| uint32&lt;br /&gt;
| Content Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| int32&lt;br /&gt;
| Unknown (0 for tickets, 1 for SA?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x10&lt;br /&gt;
| bytes&lt;br /&gt;
| Unknown (possible title-key)&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x14&lt;br /&gt;
| bytes&lt;br /&gt;
| Content hash (hash of the decrypted content)&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x10&lt;br /&gt;
| bytes&lt;br /&gt;
| Unknown (&amp;#039;&amp;#039;&amp;#039;very possible title-key&amp;#039;&amp;#039;&amp;#039;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x48&lt;br /&gt;
| 0x4&lt;br /&gt;
| int32&lt;br /&gt;
| Unknown (2 for game tickets, 0 for SA/iQue Club ticket?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C&lt;br /&gt;
| 0x4&lt;br /&gt;
| int32&lt;br /&gt;
| Unknown (0 for games, 0x13 for iQue Club, 0x1F7/0x1B3 for SA)&lt;br /&gt;
|-&lt;br /&gt;
| 0x50&lt;br /&gt;
| 0x4&lt;br /&gt;
| int32&lt;br /&gt;
| Unknown (0x4000 for games, 0x6001 for iQue Club, -1 for normal SAs, 0xE01 for weird SAs?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x54&lt;br /&gt;
| 0x4&lt;br /&gt;
| int32&lt;br /&gt;
| Unknown (always 0?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x58&lt;br /&gt;
| 0x40&lt;br /&gt;
| chars&lt;br /&gt;
| Authority (cert used to sign ticket)&lt;br /&gt;
|-&lt;br /&gt;
| 0x98&lt;br /&gt;
| 0x4&lt;br /&gt;
| uint32&lt;br /&gt;
| Content ID (can&amp;#039;t be higher than 99999999, if (cid / 100) % 10 == 9, this is a game manual)&lt;br /&gt;
|-&lt;br /&gt;
| 0x9C&lt;br /&gt;
| 0x10&lt;br /&gt;
| bytes&lt;br /&gt;
| Unknown (possible title-key - contents change between devices, but signature remains the same???)&lt;br /&gt;
|-&lt;br /&gt;
| 0xAC&lt;br /&gt;
| 0x100&lt;br /&gt;
| bytes&lt;br /&gt;
| RSA-2048 signature&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In different SAs which seem to have matching bytes in the encrypted data, the field at 0x38 seems to be the only constant between them, likely our best suspect for the title-key.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:File formats]]&lt;/div&gt;</summary>
		<author><name>Emoose</name></author>
	</entry>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=Ticket&amp;diff=63</id>
		<title>Ticket</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=Ticket&amp;diff=63"/>
		<updated>2018-03-24T17:50:23Z</updated>

		<summary type="html">&lt;p&gt;Emoose: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An iQue &amp;#039;&amp;#039;&amp;#039;Ticket&amp;#039;&amp;#039;&amp;#039; is used to store data about a piece of content, such as the size, hash and ID. It&amp;#039;s used as part of the [[SKSA]] (for info about the SA1/SA2) and also used as part of the [[Title Data]] structure (for info about the game title). &lt;br /&gt;
&lt;br /&gt;
Each ticket is signed via RSA-2048 using a CP (content protection?) certificate.&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
The ticket format is similar to a [http://wiibrew.org/wiki/Ticket Wii ticket], though it seems the structure was reworked sometime between the iQue and Wii.&lt;br /&gt;
&lt;br /&gt;
It&amp;#039;s assumed that the title key needed to decrypt an SA / .app is part of the structure, though likely encrypted with a common-key that&amp;#039;s yet to be dumped from the console.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Length&lt;br /&gt;
! Type&lt;br /&gt;
! Information&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| bytes&lt;br /&gt;
| Unknown (always 0?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| int32&lt;br /&gt;
| Unknown (always 1?)&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| uint32&lt;br /&gt;
| Content Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| int32&lt;br /&gt;
| Unknown (0 for tickets, 1 for SA?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x10&lt;br /&gt;
| bytes&lt;br /&gt;
| Unknown (possible title-key)&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x14&lt;br /&gt;
| bytes&lt;br /&gt;
| Content hash (hash of the decrypted content)&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x10&lt;br /&gt;
| bytes&lt;br /&gt;
| Unknown (&amp;#039;&amp;#039;&amp;#039;very possible title-key&amp;#039;&amp;#039;&amp;#039;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x48&lt;br /&gt;
| 0x4&lt;br /&gt;
| int32&lt;br /&gt;
| Unknown (2 for game tickets, 0 for SA/iQue Club ticket?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C&lt;br /&gt;
| 0x4&lt;br /&gt;
| int32&lt;br /&gt;
| Unknown (0 for games, 0x13 for iQue Club, 0x1F7/0x1B3 for SA)&lt;br /&gt;
|-&lt;br /&gt;
| 0x50&lt;br /&gt;
| 0x4&lt;br /&gt;
| int32&lt;br /&gt;
| Unknown (0x4000 for games, 0x6001 for iQue Club, -1 for normal SAs, 0xE01 for weird SAs?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x54&lt;br /&gt;
| 0x4&lt;br /&gt;
| int32&lt;br /&gt;
| Unknown (always 0?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x58&lt;br /&gt;
| 0x40&lt;br /&gt;
| chars&lt;br /&gt;
| Authority (cert used to sign ticket)&lt;br /&gt;
|-&lt;br /&gt;
| 0x98&lt;br /&gt;
| 0x4&lt;br /&gt;
| uint32&lt;br /&gt;
| Content ID (can&amp;#039;t be higher than 99999999, if (cid / 0x64) % 0xA == 9, this is a game manual?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x9C&lt;br /&gt;
| 0x10&lt;br /&gt;
| bytes&lt;br /&gt;
| Unknown (possible title-key - contents change between devices, but signature remains the same???)&lt;br /&gt;
|-&lt;br /&gt;
| 0xAC&lt;br /&gt;
| 0x100&lt;br /&gt;
| bytes&lt;br /&gt;
| RSA-2048 signature&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In different SAs which seem to have matching bytes in the encrypted data, the field at 0x38 seems to be the only constant between them, likely our best suspect for the title-key.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:File formats]]&lt;/div&gt;</summary>
		<author><name>Emoose</name></author>
	</entry>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=Ticket&amp;diff=62</id>
		<title>Ticket</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=Ticket&amp;diff=62"/>
		<updated>2018-03-24T17:49:49Z</updated>

		<summary type="html">&lt;p&gt;Emoose: Created page with &amp;quot;An iQue &amp;#039;&amp;#039;&amp;#039;Ticket&amp;#039;&amp;#039;&amp;#039; is used to store data about a piece of content, such as the size, hash and ID. It&amp;#039;s used as part of the SKSA (for info about the SA1/SA2) and also used as...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An iQue &amp;#039;&amp;#039;&amp;#039;Ticket&amp;#039;&amp;#039;&amp;#039; is used to store data about a piece of content, such as the size, hash and ID. It&amp;#039;s used as part of the SKSA (for info about the SA1/SA2) and also used as part of the [Title Data] structure (for info about the game title). &lt;br /&gt;
&lt;br /&gt;
Each ticket is signed via RSA-2048 using a CP (content protection?) certificate.&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
The ticket format is similar to a [http://wiibrew.org/wiki/Ticket Wii ticket], though it seems the structure was reworked sometime between the iQue and Wii.&lt;br /&gt;
&lt;br /&gt;
It&amp;#039;s assumed that the title key needed to decrypt an SA / .app is part of the structure, though likely encrypted with a common-key that&amp;#039;s yet to be dumped from the console.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Length&lt;br /&gt;
! Type&lt;br /&gt;
! Information&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| bytes&lt;br /&gt;
| Unknown (always 0?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| int32&lt;br /&gt;
| Unknown (always 1?)&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| uint32&lt;br /&gt;
| Content Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| int32&lt;br /&gt;
| Unknown (0 for tickets, 1 for SA?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x10&lt;br /&gt;
| bytes&lt;br /&gt;
| Unknown (possible title-key)&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x14&lt;br /&gt;
| bytes&lt;br /&gt;
| Content hash (hash of the decrypted content)&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x10&lt;br /&gt;
| bytes&lt;br /&gt;
| Unknown (&amp;#039;&amp;#039;&amp;#039;very possible title-key&amp;#039;&amp;#039;&amp;#039;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x48&lt;br /&gt;
| 0x4&lt;br /&gt;
| int32&lt;br /&gt;
| Unknown (2 for game tickets, 0 for SA/iQue Club ticket?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C&lt;br /&gt;
| 0x4&lt;br /&gt;
| int32&lt;br /&gt;
| Unknown (0 for games, 0x13 for iQue Club, 0x1F7/0x1B3 for SA)&lt;br /&gt;
|-&lt;br /&gt;
| 0x50&lt;br /&gt;
| 0x4&lt;br /&gt;
| int32&lt;br /&gt;
| Unknown (0x4000 for games, 0x6001 for iQue Club, -1 for normal SAs, 0xE01 for weird SAs?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x54&lt;br /&gt;
| 0x4&lt;br /&gt;
| int32&lt;br /&gt;
| Unknown (always 0?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x58&lt;br /&gt;
| 0x40&lt;br /&gt;
| chars&lt;br /&gt;
| Authority (cert used to sign ticket)&lt;br /&gt;
|-&lt;br /&gt;
| 0x98&lt;br /&gt;
| 0x4&lt;br /&gt;
| uint32&lt;br /&gt;
| Content ID (can&amp;#039;t be higher than 99999999, if (cid / 0x64) % 0xA == 9, this is a game manual?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x9C&lt;br /&gt;
| 0x10&lt;br /&gt;
| bytes&lt;br /&gt;
| Unknown (possible title-key - contents change between devices, but signature remains the same???)&lt;br /&gt;
|-&lt;br /&gt;
| 0xAC&lt;br /&gt;
| 0x100&lt;br /&gt;
| bytes&lt;br /&gt;
| RSA-2048 signature&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In different SAs which seem to have matching bytes in the encrypted data, the field at 0x38 seems to be the only constant between them, likely our best suspect for the title-key.&lt;/div&gt;</summary>
		<author><name>Emoose</name></author>
	</entry>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=NAND&amp;diff=61</id>
		<title>NAND</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=NAND&amp;diff=61"/>
		<updated>2018-03-24T17:28:08Z</updated>

		<summary type="html">&lt;p&gt;Emoose: Add spare data info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The iQue uses a 64MiB &amp;#039;&amp;#039;&amp;#039;NAND&amp;#039;&amp;#039;&amp;#039; flash, which consists of 4096 logical blocks of 16384 bytes each (made up of 32 512-byte pages). Each page also has its own &amp;quot;spare&amp;quot; area, which is detailed below.&lt;br /&gt;
&lt;br /&gt;
== Block Map ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;0x0 - 0x40&amp;#039;&amp;#039;&amp;#039; - SKSA area, marked in the BBFS FAT as reserved&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;0x40 - 0xFF0&amp;#039;&amp;#039;&amp;#039; - data area, used for files in the BBFS&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;0xFF0 - 0x1000&amp;#039;&amp;#039;&amp;#039; - BBFS area, each block holds a copy of the BBFS along with a &amp;#039;sequence number&amp;#039;, highest sequence number is the latest BBFS.&lt;br /&gt;
&lt;br /&gt;
== BBFS ==&lt;br /&gt;
BBFS is the filesystem used on the iQue NAND, a very simple file-system used to store games and config data. The Wii NAND&amp;#039;s SFFS is actually very similar to BBFS, though with many more features.&lt;br /&gt;
&lt;br /&gt;
The BBFS is made up of three parts: a FAT (file-allocation table), an entry table and a footer:&lt;br /&gt;
&lt;br /&gt;
=== FAT ===&lt;br /&gt;
The FAT is located at 0x0 in the BBFS block, made up of 4096 16-bit signed integers, one for each block in the NAND. This is used to specify if a block may be reserved, bad, available, or it might point to another block in the &amp;#039;chain&amp;#039; (ie. file 0 points to block 0, block 0 points to block 2, block 2 points to block 15...), or signify the end of the chain.&lt;br /&gt;
&lt;br /&gt;
Files make use of the FAT by simply pointing to a block in the FAT as its start block. Extracting the file is then just a matter of following the chain of pointers in the FAT, reading in each block until you reach an end-of-chain marker.&lt;br /&gt;
&lt;br /&gt;
Possible FAT entries:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:30%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Free/unused block&lt;br /&gt;
|-&lt;br /&gt;
| -1&lt;br /&gt;
| End-of-chain marker&lt;br /&gt;
|-&lt;br /&gt;
| -2&lt;br /&gt;
| Bad block&lt;br /&gt;
|-&lt;br /&gt;
| -3&lt;br /&gt;
| Reserved block (used for SKSA area)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Entry Table ===&lt;br /&gt;
File entries are stored from 0x2000 - 0x3FF4 in the BBFS block, allowing for 409 entries per BBFS.&lt;br /&gt;
&lt;br /&gt;
Each entry has the format:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Length&lt;br /&gt;
! Type&lt;br /&gt;
! Information&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| char&lt;br /&gt;
| File name&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x3&lt;br /&gt;
| char&lt;br /&gt;
| File extension&lt;br /&gt;
|-&lt;br /&gt;
| 0xB&lt;br /&gt;
| 0x1&lt;br /&gt;
| byte&lt;br /&gt;
| Valid indicator (1 if file is valid)&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x2&lt;br /&gt;
| int16&lt;br /&gt;
| Start block #&lt;br /&gt;
|-&lt;br /&gt;
| 0xE&lt;br /&gt;
| 0x2&lt;br /&gt;
| bytes&lt;br /&gt;
| Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| int32&lt;br /&gt;
| File size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Files may be deleted by simply having the Valid indicator set to 0, or having a block number of -1, so when reading the entry table you should make sure to read all 409 entries first and then filter out any invalid ones.&lt;br /&gt;
&lt;br /&gt;
=== Footer ===&lt;br /&gt;
From 0x3FF4 to 0x4000 is the BBFS footer, which simply contains a BBFS signature to identify it as a BBFS block, a sequence number used for finding the latest BBFS, and a checksum for verifying the BBFS contents.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Length&lt;br /&gt;
! Type&lt;br /&gt;
! Information&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| char&lt;br /&gt;
| Magic (BBFS or BBFL)&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| int32&lt;br /&gt;
| Sequence number&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x2&lt;br /&gt;
| int16&lt;br /&gt;
| Link block #&lt;br /&gt;
|-&lt;br /&gt;
| 0xA&lt;br /&gt;
| 0x2&lt;br /&gt;
| int16&lt;br /&gt;
| Checksum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Link block #&amp;quot; field seems to be used for linking two BBFS blocks together, though this hasn&amp;#039;t been seen in any NAND dumps so far (maybe meant for NANDs larger than 4096 blocks, or containing more than 409 entries?). &lt;br /&gt;
&lt;br /&gt;
Checksum is a basic adder, the fields value is made by adding each uint16 from 0x0 - 0x3FFE, and taking the result away from 0xCAD7. For verifying, 0x0 - 0x4000 is added together, and if the result is 0xCAD7 the checksum is valid.&lt;br /&gt;
&lt;br /&gt;
== Spare data ==&lt;br /&gt;
Each 512 page page in the NAND has a 16 byte &amp;quot;spare&amp;quot; area associated with it, which is used for bad-block markers, error-correction codes and block-pointers for the [[SKSA|SA]] area.&lt;br /&gt;
&lt;br /&gt;
Unfortunately the I@H USB commands for reading/writing NAND can only access the last page-spare of each block, though hardware NAND writers can access all of them. It seems that writing a &amp;quot;block-spare&amp;quot; over USB will actually copy the spare data to all the page-spares in the block (besides the ECC section), and can also recalculate ECC itself if given ECC data of all 0xFF.&lt;br /&gt;
&lt;br /&gt;
Blocks in the SA area (containing SA1/SA2 tickets or data) also have 3 bytes in the spare used for pointing toward the next SA block, ie. SA1 ticket block -&amp;gt; SA1 data block 1 -&amp;gt; SA1 data block n -&amp;gt; SA2 ticket block, it&amp;#039;s guessed this is for working around any bad-blocks in the SA area.&lt;br /&gt;
&lt;br /&gt;
ECC is calculated using a Hamming code, as documented in [https://www.kernel.org/doc/Documentation/mtd/nand_ecc.txt the Linux kernel nand_ecc documentation], a working iQue implementation is available inside [https://github.com/emoose/iQueTool/blob/master/iQueTool/Structs/iQueBlockSpare.cs#L56 the iQueTool source code].&lt;br /&gt;
&lt;br /&gt;
So far the known spare format is:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Length&lt;br /&gt;
! Type&lt;br /&gt;
! Information&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x3&lt;br /&gt;
| bytes&lt;br /&gt;
| SA block data (1 byte, copied to all 3 bytes)&lt;br /&gt;
|-&lt;br /&gt;
| 0x3&lt;br /&gt;
| 0x2&lt;br /&gt;
| bytes&lt;br /&gt;
| Unknown (always 0xFF?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x5&lt;br /&gt;
| 0x1&lt;br /&gt;
| byte&lt;br /&gt;
| Bad block indicator (0 if block is bad)&lt;br /&gt;
|-&lt;br /&gt;
| 0x6&lt;br /&gt;
| 0x2&lt;br /&gt;
| bytes&lt;br /&gt;
| Unknown (always 0xFF?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x3&lt;br /&gt;
| bytes&lt;br /&gt;
| ECC data for 0x100-0x200 in the page&lt;br /&gt;
|-&lt;br /&gt;
| 0xB&lt;br /&gt;
| 0x2&lt;br /&gt;
| bytes&lt;br /&gt;
| Unknown (always 0xFF?)&lt;br /&gt;
|-&lt;br /&gt;
| 0xD&lt;br /&gt;
| 0x3&lt;br /&gt;
| bytes&lt;br /&gt;
| ECC data for 0x0-0x100 in the page&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:File formats]]&lt;/div&gt;</summary>
		<author><name>Emoose</name></author>
	</entry>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=NAND&amp;diff=60</id>
		<title>NAND</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=NAND&amp;diff=60"/>
		<updated>2018-03-24T17:12:58Z</updated>

		<summary type="html">&lt;p&gt;Emoose: Finish BBFS section, TODO: spare data info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The iQue uses a 64MiB &amp;#039;&amp;#039;&amp;#039;NAND&amp;#039;&amp;#039;&amp;#039; flash, which consists of 4096 logical blocks of 16384 bytes each (made up of 32 512-byte pages)&lt;br /&gt;
&lt;br /&gt;
Each page also has 16 bytes of spare data, which is used for bad-block markers, error-correction codes and block-pointers for the [[SKSA|SA]] area. &lt;br /&gt;
&lt;br /&gt;
Unfortunately the I@H USB commands for reading/writing NAND can only access the last page-spare of each block, though hardware NAND writers can access all of them.&lt;br /&gt;
&lt;br /&gt;
== Block Map ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;0x0 - 0x40&amp;#039;&amp;#039;&amp;#039; - SKSA area, marked in the BBFS FAT as reserved&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;0x40 - 0xFF0&amp;#039;&amp;#039;&amp;#039; - data area, used for files in the BBFS&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;0xFF0 - 0x1000&amp;#039;&amp;#039;&amp;#039; - BBFS area, each block holds a copy of the BBFS along with a &amp;#039;sequence number&amp;#039;, highest sequence number is the latest BBFS.&lt;br /&gt;
&lt;br /&gt;
== BBFS ==&lt;br /&gt;
BBFS is the filesystem used on the iQue NAND, a very simple file-system used to store games and config data. The Wii NAND&amp;#039;s SFFS is actually very similar to BBFS, though with many more features.&lt;br /&gt;
&lt;br /&gt;
The BBFS is made up of three parts: a FAT (file-allocation table), an entry table and a footer:&lt;br /&gt;
&lt;br /&gt;
=== FAT ===&lt;br /&gt;
The FAT is located at 0x0 in the BBFS block, made up of 4096 16-bit signed integers, one for each block in the NAND. This is used to specify if a block may be reserved, bad, available, or it might point to another block in the &amp;#039;chain&amp;#039; (ie. file 0 points to block 0, block 0 points to block 2, block 2 points to block 15...), or signify the end of the chain.&lt;br /&gt;
&lt;br /&gt;
Files make use of the FAT by simply pointing to a block in the FAT as its start block. Extracting the file is then just a matter of following the chain of pointers in the FAT, reading in each block until you reach an end-of-chain marker.&lt;br /&gt;
&lt;br /&gt;
Possible FAT entries:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:30%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Free/unused block&lt;br /&gt;
|-&lt;br /&gt;
| -1&lt;br /&gt;
| End-of-chain marker&lt;br /&gt;
|-&lt;br /&gt;
| -2&lt;br /&gt;
| Bad block&lt;br /&gt;
|-&lt;br /&gt;
| -3&lt;br /&gt;
| Reserved block (used for SKSA area)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Entry Table ===&lt;br /&gt;
File entries are stored from 0x2000 - 0x3FF4 in the BBFS block, allowing for 409 entries per BBFS.&lt;br /&gt;
&lt;br /&gt;
Each entry has the format:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Length&lt;br /&gt;
! Type&lt;br /&gt;
! Information&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| char&lt;br /&gt;
| File name&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x3&lt;br /&gt;
| char&lt;br /&gt;
| File extension&lt;br /&gt;
|-&lt;br /&gt;
| 0xB&lt;br /&gt;
| 0x1&lt;br /&gt;
| byte&lt;br /&gt;
| Valid indicator (1 if file is valid)&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x2&lt;br /&gt;
| int16&lt;br /&gt;
| Start block #&lt;br /&gt;
|-&lt;br /&gt;
| 0xE&lt;br /&gt;
| 0x2&lt;br /&gt;
| bytes&lt;br /&gt;
| Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| int32&lt;br /&gt;
| File size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Files may be deleted by simply having the Valid indicator set to 0, or having a block number of -1, so when reading the entry table you should make sure to read all 409 entries first and then filter out any invalid ones.&lt;br /&gt;
&lt;br /&gt;
=== Footer ===&lt;br /&gt;
From 0x3FF4 to 0x4000 is the BBFS footer, which simply contains a BBFS signature to identify it as a BBFS block, a sequence number used for finding the latest BBFS, and a checksum for verifying the BBFS contents.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Length&lt;br /&gt;
! Type&lt;br /&gt;
! Information&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| char&lt;br /&gt;
| Magic (BBFS or BBFL)&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| int32&lt;br /&gt;
| Sequence number&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x2&lt;br /&gt;
| int16&lt;br /&gt;
| Link block #&lt;br /&gt;
|-&lt;br /&gt;
| 0xA&lt;br /&gt;
| 0x2&lt;br /&gt;
| int16&lt;br /&gt;
| Checksum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Link block #&amp;quot; field seems to be used for linking two BBFS blocks together, though this hasn&amp;#039;t been seen in any NAND dumps so far (maybe meant for NANDs larger than 4096 blocks, or containing more than 409 entries?). &lt;br /&gt;
&lt;br /&gt;
Checksum is a basic adder, the fields value is made by adding each uint16 from 0x0 - 0x3FFE, and taking the result away from 0xCAD7. For verifying, 0x0 - 0x4000 is added together, and if the result is 0xCAD7 the checksum is valid.&lt;br /&gt;
&lt;br /&gt;
[[Category:File formats]]&lt;/div&gt;</summary>
		<author><name>Emoose</name></author>
	</entry>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=Category:PC_utilities&amp;diff=51</id>
		<title>Category:PC utilities</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=Category:PC_utilities&amp;diff=51"/>
		<updated>2018-03-24T15:38:39Z</updated>

		<summary type="html">&lt;p&gt;Emoose: Created page with &amp;quot;The iQue allows connecting to a computer over USB, here are some of the PC-side tools used.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The iQue allows connecting to a computer over USB, here are some of the PC-side tools used.&lt;/div&gt;</summary>
		<author><name>Emoose</name></author>
	</entry>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=IQueDiagExtend&amp;diff=50</id>
		<title>IQueDiagExtend</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=IQueDiagExtend&amp;diff=50"/>
		<updated>2018-03-24T15:38:17Z</updated>

		<summary type="html">&lt;p&gt;Emoose: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;iQueDiagExtend&amp;#039;&amp;#039;&amp;#039; is an extension for [[ique_diag.exe]] which adds additional commands to the ique_diag menu, such as reading the raw [[NAND]] or writing back modified data.&lt;br /&gt;
&lt;br /&gt;
While ique_diag has functions in the exe that allow for reading/writing the raw NAND, unfortunately they&amp;#039;re only ever used as part of other functions, with the raw NAND functions never exposed to the user.&lt;br /&gt;
&lt;br /&gt;
iQueDiagExtend hooks into the ique_diag menu, allowing us to add our own custom commands that can make use of those functions.&lt;br /&gt;
&lt;br /&gt;
Source code can be found on emoose&amp;#039;s GitHub page [https://github.com/emoose/iQueDiagExtend], with read-only builds available in the releases section [https://github.com/emoose/iQueDiagExtend/releases].&lt;br /&gt;
&lt;br /&gt;
= Dumping =&lt;br /&gt;
To dump a NAND, connect the iQue to a system (or an XP VM) which has the [[iQue@Home]] drivers installed and run ique_diag.exe, then press &amp;#039;x&amp;#039;. If DiagExtend is working it should print a list of custom commands added by the hook.&lt;br /&gt;
&lt;br /&gt;
To start reading simply press &amp;#039;B&amp;#039; (uppercase) to connect ique_diag to your device, and then press &amp;#039;1&amp;#039;, progress on the dump will be printed every 16 blocks.&lt;br /&gt;
&lt;br /&gt;
If the dump is successful a nand.bin (67,108,864 bytes) &amp;amp; spare.bin (65,536 bytes) will appear next to the ique_diag.exe (you should move these files between dumps, so that new dumps can be written to a fresh file).&lt;br /&gt;
&lt;br /&gt;
= Writing =&lt;br /&gt;
iQueDiagExtend also has support for writing back to the NAND, though the public iQueDiagExtend builds are missing these writing functions for safety reasons. You can easily compile a write-enabled build from source if you have VS2017 installed (or just ask for a build in the iQue Hacking discord)&lt;br /&gt;
&lt;br /&gt;
To write back to the device, first put the nand.bin/spare.bin you want to write in the same folder as ique_diag.exe, then open ique_diag and press &amp;#039;B&amp;#039; (uppercase) to connect.&lt;br /&gt;
&lt;br /&gt;
If you want to write the full nand.bin/spare.bin to the device simply press &amp;#039;2&amp;#039;, progress will be given as it writes.&lt;br /&gt;
&lt;br /&gt;
Alternatively if you only wish to write certain blocks to the device you can add ranges. For example, typing &amp;#039;2 0-0x100,4075&amp;#039; will write from the nand.bin only blocks 0 through 256, and block 4075. This can be much faster than needing to write the whole NAND each time!&lt;br /&gt;
&lt;br /&gt;
= Hotswapping =&lt;br /&gt;
Unfortunately there are many iQue Players that lack any kind of USB support, due to the [[SKSA]] on them being an older version.&lt;br /&gt;
&lt;br /&gt;
Luckily, if you have another Player that does have USB support, you can use that one to upgrade the non-USB card to a later SKSA that supports USB.&lt;br /&gt;
&lt;br /&gt;
* Make sure the unit is plugged into your machine over USB&lt;br /&gt;
* Power on your USB-compatible unit with the USB-compatible card inside (once booted, it should appear under device manager as &amp;quot;iQue Player&amp;quot;, as usual)&lt;br /&gt;
* Now with the unit still powered on, take the USB-compatible card out, and plug in the non-USB card&lt;br /&gt;
* On the PC open ique_diag.exe, and follow the steps in the &amp;quot;Dumping&amp;quot; / &amp;quot;Writing&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
Make sure not to power off the iQue during this process, as it&amp;#039;ll then try to boot up from the non-USB card.&lt;br /&gt;
&lt;br /&gt;
[[Category:PC utilities]]&lt;/div&gt;</summary>
		<author><name>Emoose</name></author>
	</entry>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=NAND&amp;diff=49</id>
		<title>NAND</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=NAND&amp;diff=49"/>
		<updated>2018-03-24T15:37:11Z</updated>

		<summary type="html">&lt;p&gt;Emoose: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The iQue uses a 64MiB &amp;#039;&amp;#039;&amp;#039;NAND&amp;#039;&amp;#039;&amp;#039; flash, which consists of 4096 logical blocks of 16384 bytes each (made up of 32 512-byte pages)&lt;br /&gt;
&lt;br /&gt;
Each page also has 16 bytes of spare data, which is used for bad-block markers, error-correction codes and block-pointers for the [[SKSA|SA]] area. &lt;br /&gt;
&lt;br /&gt;
Unfortunately the I@H USB commands for reading/writing NAND can only access the last page-spare of each block, though hardware NAND writers can access all of them.&lt;br /&gt;
&lt;br /&gt;
== Block Map ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;0x0 - 0x40&amp;#039;&amp;#039;&amp;#039; - SKSA area, marked in the BBFS FAT as reserved&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;0x40 - 0xFF0&amp;#039;&amp;#039;&amp;#039; - data area, used for files in the BBFS&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;0xFF0 - 0x1000&amp;#039;&amp;#039;&amp;#039; - BBFS area, each block holds a copy of the BBFS along with a &amp;#039;sequence number&amp;#039;, highest sequence number is the latest BBFS.&lt;br /&gt;
&lt;br /&gt;
== BBFS ==&lt;br /&gt;
BBFS is the filesystem used on the iQue NAND, a very simple file-system used to store games and config data. The Wii NAND&amp;#039;s SFFS is actually very similar to BBFS, though with many more features.&lt;br /&gt;
&lt;br /&gt;
The BBFS is made up of three parts: a FAT (file-allocation table), an entry table and a footer:&lt;br /&gt;
&lt;br /&gt;
=== FAT ===&lt;br /&gt;
The FAT is located at 0x0 in the BBFS block, made up of 4096 16-bit signed integers, one for each block in the NAND. This is used to specify if a block may be reserved, bad, available, or it might point to another block in the &amp;#039;chain&amp;#039; (ie. file 0 points to block 0, block 0 points to block 2, block 2 points to block 15...), or signify the end of the chain.&lt;br /&gt;
&lt;br /&gt;
Files make use of the FAT by simply pointing to a block in the FAT as its start block. Extracting the file is then just a matter of following the chain of pointers in the FAT, reading in each block until you reach an end-of-chain marker.&lt;br /&gt;
&lt;br /&gt;
Possible FAT entries:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:30%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Free/unused block&lt;br /&gt;
|-&lt;br /&gt;
| -1&lt;br /&gt;
| End-of-chain marker&lt;br /&gt;
|-&lt;br /&gt;
| -2&lt;br /&gt;
| Bad block&lt;br /&gt;
|-&lt;br /&gt;
| -3&lt;br /&gt;
| Reserved block (used for SKSA area)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:File formats]]&lt;/div&gt;</summary>
		<author><name>Emoose</name></author>
	</entry>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=Category:File_formats&amp;diff=48</id>
		<title>Category:File formats</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=Category:File_formats&amp;diff=48"/>
		<updated>2018-03-24T15:36:51Z</updated>

		<summary type="html">&lt;p&gt;Emoose: Created page with &amp;quot;The various file formats used by the iQue Player, ique_diag and iQue@Home.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The various file formats used by the iQue Player, ique_diag and iQue@Home.&lt;/div&gt;</summary>
		<author><name>Emoose</name></author>
	</entry>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=SKSA&amp;diff=47</id>
		<title>SKSA</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=SKSA&amp;diff=47"/>
		<updated>2018-03-24T15:36:19Z</updated>

		<summary type="html">&lt;p&gt;Emoose: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;SKSA&amp;#039;&amp;#039;&amp;#039; (Secure Kernel / System App) is the &amp;quot;Upgradable Operating System&amp;quot; of the iQue Player, the main software that runs on the device.&lt;br /&gt;
&lt;br /&gt;
== Parts ==&lt;br /&gt;
As the name implies it consists of two parts: a &amp;quot;secure kernel&amp;quot;, and a &amp;quot;system app&amp;quot;. In later SKSAs the system-app area may also be divided into two sections: SA1 and SA2.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Secure Kernel&amp;#039;&amp;#039;&amp;#039;: the &amp;#039;boot1&amp;#039; of the iQue. Doesn&amp;#039;t ever seem to change between SKSA versions, so might be similar to the Wii boot1 where the hash of it is checked against a stored hash in the CPU. Probably only stored in NAND as it&amp;#039;s cheaper than storing in CPU.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;System App 1&amp;#039;&amp;#039;&amp;#039;: Consists of a [[Ticket|ticket]], followed by the actual SA1 data. Most SA1s are just the iQue Menu, though some seem to be factory/graphics tests. SA1 seems to be responsible for handling USB comms too.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;System App 2&amp;#039;&amp;#039;&amp;#039;: Also has a ticket, followed by SA2 data. Unknown purpose, in SKSAs that have an SA2 the SA1 size is greatly reduced compared to single-SA SKSAs, assumably they moved some data from SA1 into this, but it seems like dual-SA SA1s can run without needing the corresponding SA2?&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
The format of the SKSA is simple: a 64KiB SK, followed by SA1 (ticket + data), optionally followed by SA2 (ticket + data):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Length&lt;br /&gt;
! Type&lt;br /&gt;
! Information&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x10000&lt;br /&gt;
| encrypted bytes&lt;br /&gt;
| Secure Kernel&lt;br /&gt;
|-&lt;br /&gt;
| 0x10000&lt;br /&gt;
| 0x4000&lt;br /&gt;
| ticket&lt;br /&gt;
| SA1 ticket&lt;br /&gt;
|-&lt;br /&gt;
| 0x14000&lt;br /&gt;
| (sa1ticket.ContentSize)&lt;br /&gt;
| encrypted bytes&lt;br /&gt;
| SA1 data&lt;br /&gt;
|-&lt;br /&gt;
| 0x14000 + sa1ticket.ContentSize&lt;br /&gt;
| 0x4000&lt;br /&gt;
| ticket&lt;br /&gt;
| SA2 ticket&lt;br /&gt;
|-&lt;br /&gt;
| 0x18000 + sa1ticket.ContentSize&lt;br /&gt;
| sa2ticket.ContentSize&lt;br /&gt;
| encrypted bytes&lt;br /&gt;
| SA2 data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== NAND format ==&lt;br /&gt;
On NAND the format is slightly changed however: instead of storing the SA1 &amp;amp; SA2 data exactly as stored in the cached SKSA, the data is instead reversed in 0x4000 byte blocks (though tickets are unaffected). The NAND spare data is used to store pointers for these blocks, to allow for skipping any bad blocks in the SKSA area.&lt;br /&gt;
&lt;br /&gt;
See [https://github.com/emoose/iQueTool/blob/master/iQueTool/Files/iQueNand.cs#L207 SetSKSAData in iQueTool] for an example on how the blocks are transformed, or see [https://github.com/emoose/iQueTool/blob/master/iQueTool/Files/iQueNand.cs#L506 GenerateSpareData] for how the SAData in the spare is set.&lt;br /&gt;
&lt;br /&gt;
The [[BBFS]] FAT table also sets the SKSA blocks to 0xfffd (reserved), to ensure that no files will overwrite them.&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
A spreadsheet of the different SKSAs that have been tested (whether it boots, what happens when it boots, etc) is available [https://docs.google.com/spreadsheets/d/13wb-jwPEJ9HV2-XUbaLr3VVkGXTrX2LEf6cGce7WdU8/edit?usp=sharing here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:File_formats]]&lt;/div&gt;</summary>
		<author><name>Emoose</name></author>
	</entry>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=IQueDiagExtend&amp;diff=45</id>
		<title>IQueDiagExtend</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=IQueDiagExtend&amp;diff=45"/>
		<updated>2018-03-24T15:33:33Z</updated>

		<summary type="html">&lt;p&gt;Emoose: /* Hotswapping */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;iQueDiagExtend&amp;#039;&amp;#039;&amp;#039; is an extension for ique_diag.exe which adds additional commands to the ique_diag menu, such as reading the raw NAND or writing back modified data.&lt;br /&gt;
&lt;br /&gt;
While ique_diag has functions in the exe that allow for reading/writing the raw NAND, unfortunately they&amp;#039;re only ever used as part of other functions, with the raw NAND functions never exposed to the user.&lt;br /&gt;
&lt;br /&gt;
iQueDiagExtend hooks into the ique_diag menu, allowing us to add our own custom commands that can make use of those functions.&lt;br /&gt;
&lt;br /&gt;
Source code can be found at: https://github.com/emoose/iQueDiagExtend, with read-only builds available at https://github.com/emoose/iQueDiagExtend/releases.&lt;br /&gt;
&lt;br /&gt;
= Dumping =&lt;br /&gt;
To dump a NAND, connect the iQue to a system (or an XP VM) which has the iQue@Home drivers installed and run ique_diag.exe, then press &amp;#039;x&amp;#039;. If DiagExtend is working it should print a list of custom commands added by the hook.&lt;br /&gt;
&lt;br /&gt;
To start reading simply press &amp;#039;B&amp;#039; (uppercase) to connect ique_diag to your device, and then press &amp;#039;1&amp;#039;, progress on the dump will be printed every 16 blocks.&lt;br /&gt;
&lt;br /&gt;
If the dump is successful a nand.bin (67,108,864 bytes) &amp;amp; spare.bin (65,536 bytes) will appear next to the ique_diag.exe (you should move these files between dumps, so that new dumps can be written to a fresh file).&lt;br /&gt;
&lt;br /&gt;
= Writing =&lt;br /&gt;
iQueDiagExtend also has support for writing back to the NAND, though the public iQueDiagExtend builds are missing these writing functions for safety reasons. You can easily compile a write-enabled build from source if you have VS2017 installed (or just ask for a build in the iQue Hacking discord)&lt;br /&gt;
&lt;br /&gt;
To write back to the device, first put the nand.bin/spare.bin you want to write in the same folder as ique_diag.exe, then open ique_diag and press &amp;#039;B&amp;#039; (uppercase) to connect.&lt;br /&gt;
&lt;br /&gt;
If you want to write the full nand.bin/spare.bin to the device simply press &amp;#039;2&amp;#039;, progress will be given as it writes.&lt;br /&gt;
&lt;br /&gt;
Alternatively if you only wish to write certain blocks to the device you can add ranges. For example, typing &amp;#039;2 0-0x100,4075&amp;#039; will write from the nand.bin only blocks 0 through 256, and block 4075. This can be much faster than needing to write the whole NAND each time!&lt;br /&gt;
&lt;br /&gt;
= Hotswapping =&lt;br /&gt;
Unfortunately there are many iQue Players that lack any kind of USB support, due to the [[SKSA]] on them being an older version.&lt;br /&gt;
&lt;br /&gt;
Luckily, if you have another Player that does have USB support, you can use that one to upgrade the non-USB card to a later SKSA that supports USB.&lt;br /&gt;
&lt;br /&gt;
* Make sure the unit is plugged into your machine over USB&lt;br /&gt;
* Power on your USB-compatible unit with the USB-compatible card inside (once booted, it should appear under device manager as &amp;quot;iQue Player&amp;quot;, as usual)&lt;br /&gt;
* Now with the unit still powered on, take the USB-compatible card out, and plug in the non-USB card&lt;br /&gt;
* On the PC open ique_diag.exe, and follow the steps in the &amp;quot;Dumping&amp;quot; / &amp;quot;Writing&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
Make sure not to power off the iQue during this process, as it&amp;#039;ll then try to boot up from the non-USB card.&lt;/div&gt;</summary>
		<author><name>Emoose</name></author>
	</entry>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=IQueDiagExtend&amp;diff=44</id>
		<title>IQueDiagExtend</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=IQueDiagExtend&amp;diff=44"/>
		<updated>2018-03-24T15:31:35Z</updated>

		<summary type="html">&lt;p&gt;Emoose: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;iQueDiagExtend&amp;#039;&amp;#039;&amp;#039; is an extension for ique_diag.exe which adds additional commands to the ique_diag menu, such as reading the raw NAND or writing back modified data.&lt;br /&gt;
&lt;br /&gt;
While ique_diag has functions in the exe that allow for reading/writing the raw NAND, unfortunately they&amp;#039;re only ever used as part of other functions, with the raw NAND functions never exposed to the user.&lt;br /&gt;
&lt;br /&gt;
iQueDiagExtend hooks into the ique_diag menu, allowing us to add our own custom commands that can make use of those functions.&lt;br /&gt;
&lt;br /&gt;
Source code can be found at: https://github.com/emoose/iQueDiagExtend, with read-only builds available at https://github.com/emoose/iQueDiagExtend/releases.&lt;br /&gt;
&lt;br /&gt;
= Dumping =&lt;br /&gt;
To dump a NAND, connect the iQue to a system (or an XP VM) which has the iQue@Home drivers installed and run ique_diag.exe, then press &amp;#039;x&amp;#039;. If DiagExtend is working it should print a list of custom commands added by the hook.&lt;br /&gt;
&lt;br /&gt;
To start reading simply press &amp;#039;B&amp;#039; (uppercase) to connect ique_diag to your device, and then press &amp;#039;1&amp;#039;, progress on the dump will be printed every 16 blocks.&lt;br /&gt;
&lt;br /&gt;
If the dump is successful a nand.bin (67,108,864 bytes) &amp;amp; spare.bin (65,536 bytes) will appear next to the ique_diag.exe (you should move these files between dumps, so that new dumps can be written to a fresh file).&lt;br /&gt;
&lt;br /&gt;
= Writing =&lt;br /&gt;
iQueDiagExtend also has support for writing back to the NAND, though the public iQueDiagExtend builds are missing these writing functions for safety reasons. You can easily compile a write-enabled build from source if you have VS2017 installed (or just ask for a build in the iQue Hacking discord)&lt;br /&gt;
&lt;br /&gt;
To write back to the device, first put the nand.bin/spare.bin you want to write in the same folder as ique_diag.exe, then open ique_diag and press &amp;#039;B&amp;#039; (uppercase) to connect.&lt;br /&gt;
&lt;br /&gt;
If you want to write the full nand.bin/spare.bin to the device simply press &amp;#039;2&amp;#039;, progress will be given as it writes.&lt;br /&gt;
&lt;br /&gt;
Alternatively if you only wish to write certain blocks to the device you can add ranges. For example, typing &amp;#039;2 0-0x100,4075&amp;#039; will write from the nand.bin only blocks 0 through 256, and block 4075. This can be much faster than needing to write the whole NAND each time!&lt;br /&gt;
&lt;br /&gt;
= Hotswapping =&lt;br /&gt;
Unfortunately there are many iQue Players that lack any kind of USB support, due to the [[SKSA]] on them being an older version.&lt;br /&gt;
&lt;br /&gt;
Luckily, if you have another Player that does have USB support, you can use that one to upgrade the non-USB card to a later SKSA that supports USB.&lt;br /&gt;
&lt;br /&gt;
* Power on your USB-compatible unit with the USB-compatible card inside&lt;br /&gt;
* Once booted, plug in the unit to your machine over USB (it should appear under device manager as &amp;quot;iQue Player&amp;quot;, as usual)&lt;br /&gt;
* Now with the unit still powered on, take the USB-compatible card out, and plug in the non-USB card&lt;br /&gt;
* On the PC open ique_diag.exe, and follow the steps in the &amp;quot;Dumping&amp;quot; / &amp;quot;Writing&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
Make sure not to power off the iQue during this process, as it&amp;#039;ll then try to boot up from the non-USB card.&lt;/div&gt;</summary>
		<author><name>Emoose</name></author>
	</entry>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=IQueDiagExtend&amp;diff=42</id>
		<title>IQueDiagExtend</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=IQueDiagExtend&amp;diff=42"/>
		<updated>2018-03-24T15:28:38Z</updated>

		<summary type="html">&lt;p&gt;Emoose: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;iQueDiagExtend&amp;#039;&amp;#039;&amp;#039; is an extension for ique_diag.exe which adds additional commands to the ique_diag menu, such as reading the raw NAND or writing back modified data.&lt;br /&gt;
&lt;br /&gt;
While ique_diag has functions in the exe that allow for reading/writing the raw NAND, unfortunately they&amp;#039;re only ever used as part of other functions, with the raw NAND functions never exposed to the user.&lt;br /&gt;
&lt;br /&gt;
iQueDiagExtend hooks into the ique_diag menu, allowing us to add our own custom commands that can make use of those functions.&lt;br /&gt;
&lt;br /&gt;
Source code can be found at: https://github.com/emoose/iQueDiagExtend, with read-only builds available at https://github.com/emoose/iQueDiagExtend/releases.&lt;br /&gt;
&lt;br /&gt;
= Dumping =&lt;br /&gt;
To dump a NAND, connect the iQue to a system (or an XP VM) which has the iQue@Home drivers installed and run ique_diag.exe, then press &amp;#039;x&amp;#039;. If DiagExtend is working it should print a list of custom commands added by the hook.&lt;br /&gt;
&lt;br /&gt;
To start reading simply press &amp;#039;B&amp;#039; (uppercase) to connect ique_diag to your device, and then press &amp;#039;3&amp;#039;, progress on the dump will be printed every 16 blocks.&lt;br /&gt;
&lt;br /&gt;
If the dump is successful a nand.bin (67,108,864 bytes) &amp;amp; spare.bin (65,536 bytes) will appear next to the ique_diag.exe (you should move these files between dumps, so that new dumps can be written to a fresh file).&lt;br /&gt;
&lt;br /&gt;
= Writing =&lt;br /&gt;
iQueDiagExtend also has support for writing back to the NAND, though the public iQueDiagExtend builds are missing these writing functions for safety reasons. You can easily compile a write-enabled build from source if you have VS2017 installed (or just ask for a build in the iQue Hacking discord)&lt;br /&gt;
&lt;br /&gt;
To write back to the device, first put the nand.bin/spare.bin you want to write in the same folder as ique_diag.exe, then open ique_diag and press &amp;#039;B&amp;#039; (uppercase) to connect.&lt;br /&gt;
&lt;br /&gt;
If you want to write the full nand.bin/spare.bin to the device simply press &amp;#039;2&amp;#039;, progress will be given as it writes.&lt;br /&gt;
&lt;br /&gt;
Alternatively if you only wish to write certain blocks to the device you can add ranges. For example, typing &amp;#039;2 0-0x100,4075&amp;#039; will write from the nand.bin only blocks 0 through 256, and block 4075. This can be much faster than needing to write the whole NAND each time!&lt;br /&gt;
&lt;br /&gt;
= Hotswapping =&lt;br /&gt;
Unfortunately there&amp;#039;s many iQue devices that lack any kind of USB support, due to the [[SKSA]] on them being an older version.&lt;br /&gt;
&lt;br /&gt;
Luckily, if you have another device that does have USB support, you can use that one to upgrade the non-USB card to a later USB-supporting SKSA version!&lt;br /&gt;
&lt;br /&gt;
* Firstly, power on your USB-compatible unit with the USB-compatible card inside&lt;br /&gt;
* Once booted, plug in the unit to your machine over USB (it should appear under device manager as &amp;quot;iQue Player&amp;quot;, as usual)&lt;br /&gt;
* Now with the unit still powered on, take the USB-compatible card out, and plug in the non-USB card&lt;br /&gt;
* On the PC open ique_diag.exe, and follow the steps in the &amp;quot;Dumping&amp;quot; / &amp;quot;Writing&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
Make sure not to power off the iQue during this process, as it&amp;#039;ll then try to boot up from the non-USB card.&lt;/div&gt;</summary>
		<author><name>Emoose</name></author>
	</entry>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=IQueDiagExtend&amp;diff=40</id>
		<title>IQueDiagExtend</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=IQueDiagExtend&amp;diff=40"/>
		<updated>2018-03-24T15:28:09Z</updated>

		<summary type="html">&lt;p&gt;Emoose: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;iQueDiagExtend&amp;#039;&amp;#039;&amp;#039; is an extension for ique_diag.exe which adds additional commands to the ique_diag menu, such as reading the raw NAND or writing back modified data.&lt;br /&gt;
&lt;br /&gt;
While ique_diag has functions in the exe that allow for reading/writing the raw NAND, unfortunately they&amp;#039;re only ever used as part of other functions, with the raw NAND functions never exposed to the user.&lt;br /&gt;
&lt;br /&gt;
iQueDiagExtend hooks into the ique_diag menu, allowing us to add our own custom commands that can make use of those functions.&lt;br /&gt;
&lt;br /&gt;
Source code can be found at: https://github.com/emoose/iQueDiagExtend, with read-only builds available at https://github.com/emoose/iQueDiagExtend/releases.&lt;br /&gt;
&lt;br /&gt;
= Dumping =&lt;br /&gt;
To dump a NAND, connect the iQue to a system (or an XP VM) which has the iQue@Home drivers installed and run the ique_diag.exe. Then press &amp;#039;x&amp;#039;, if DiagExtend is working it should print a list of custom commands added by the hook.&lt;br /&gt;
&lt;br /&gt;
To start reading simply press &amp;#039;B&amp;#039; (uppercase) to connect ique_diag to your device, and then press &amp;#039;3&amp;#039;, progress on the dump will be printed every 16 blocks.&lt;br /&gt;
&lt;br /&gt;
If the dump is successful a nand.bin (67,108,864 bytes) &amp;amp; spare.bin (65,536 bytes) will appear next to the ique_diag.exe. (you should move these files between dumps, so that new dumps can be written to a fresh file)&lt;br /&gt;
&lt;br /&gt;
= Writing =&lt;br /&gt;
iQueDiagExtend also has support for writing back to the NAND, though the public iQueDiagExtend builds are missing these writing functions for safety reasons. You can easily compile a write-enabled build from source if you have VS2017 installed (or just ask for a build in the iQue Hacking discord)&lt;br /&gt;
&lt;br /&gt;
To write back to the device, first put the nand.bin/spare.bin you want to write in the same folder as ique_diag.exe, then open ique_diag and press &amp;#039;B&amp;#039; (uppercase) to connect.&lt;br /&gt;
&lt;br /&gt;
If you want to write the full nand.bin/spare.bin to the device simply press &amp;#039;2&amp;#039;, progress will be given as it writes.&lt;br /&gt;
&lt;br /&gt;
Alternatively if you only wish to write certain blocks to the device you can add ranges. For example, typing &amp;#039;3 0-0x100,4075&amp;#039; will write from the nand.bin only blocks 0 through 256, and block 4075. This can be much faster than needing to write the whole NAND each time!&lt;br /&gt;
&lt;br /&gt;
= Hotswapping =&lt;br /&gt;
Unfortunately there&amp;#039;s many iQue devices that lack any kind of USB support, due to the [[SKSA]] on them being an older version.&lt;br /&gt;
&lt;br /&gt;
Luckily, if you have another device that does have USB support, you can use that one to upgrade the non-USB card to a later USB-supporting SKSA version!&lt;br /&gt;
&lt;br /&gt;
* Firstly, power on your USB-compatible unit with the USB-compatible card inside&lt;br /&gt;
* Once booted, plug in the unit to your machine over USB (it should appear under device manager as &amp;quot;iQue Player&amp;quot;, as usual)&lt;br /&gt;
* Now with the unit still powered on, take the USB-compatible card out, and plug in the non-USB card&lt;br /&gt;
* On the PC open ique_diag.exe, and follow the steps in the &amp;quot;Dumping&amp;quot; / &amp;quot;Writing&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
Make sure not to power off the iQue during this process, as it&amp;#039;ll then try to boot up from the non-USB card.&lt;/div&gt;</summary>
		<author><name>Emoose</name></author>
	</entry>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=NAND&amp;diff=39</id>
		<title>NAND</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=NAND&amp;diff=39"/>
		<updated>2018-03-24T15:26:44Z</updated>

		<summary type="html">&lt;p&gt;Emoose: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The iQue uses a 64MiB &amp;#039;&amp;#039;&amp;#039;NAND&amp;#039;&amp;#039;&amp;#039; flash, which consists of 4096 logical blocks of 16384 bytes each (made up of 32 512-byte pages)&lt;br /&gt;
&lt;br /&gt;
Each page also has 16 bytes of spare data, which is used for bad-block markers, error-correction codes and block-pointers for the [[SKSA|SA]] area. &lt;br /&gt;
&lt;br /&gt;
Unfortunately the I@H USB commands for reading/writing NAND can only access the last page-spare of each block, though hardware NAND writers can access all of them.&lt;br /&gt;
&lt;br /&gt;
== Block Map ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;0x0 - 0x40&amp;#039;&amp;#039;&amp;#039; - SKSA area, marked in the BBFS FAT as reserved&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;0x40 - 0xFF0&amp;#039;&amp;#039;&amp;#039; - data area, used for files in the BBFS&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;0xFF0 - 0x1000&amp;#039;&amp;#039;&amp;#039; - BBFS area, each block holds a copy of the BBFS along with a &amp;#039;sequence number&amp;#039;, highest sequence number is the latest BBFS.&lt;br /&gt;
&lt;br /&gt;
== BBFS ==&lt;br /&gt;
BBFS is the filesystem used on the iQue NAND, a very simple file-system used to store games and config data. The Wii NAND&amp;#039;s SFFS is actually very similar to BBFS, though with many more features.&lt;br /&gt;
&lt;br /&gt;
The BBFS is made up of three parts: a FAT (file-allocation table), an entry table and a footer:&lt;br /&gt;
&lt;br /&gt;
=== FAT ===&lt;br /&gt;
The FAT is located at 0x0 in the BBFS block, made up of 4096 16-bit signed integers, one for each block in the NAND. This is used to specify if a block may be reserved, bad, available, or it might point to another block in the &amp;#039;chain&amp;#039; (ie. file 0 points to block 0, block 0 points to block 2, block 2 points to block 15...), or signify the end of the chain.&lt;br /&gt;
&lt;br /&gt;
Files make use of the FAT by simply pointing to a block in the FAT as its start block. Extracting the file is then just a matter of following the chain of pointers in the FAT, reading in each block until you reach an end-of-chain marker.&lt;br /&gt;
&lt;br /&gt;
Possible FAT entries:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:30%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Free/unused block&lt;br /&gt;
|-&lt;br /&gt;
| -1&lt;br /&gt;
| End-of-chain marker&lt;br /&gt;
|-&lt;br /&gt;
| -2&lt;br /&gt;
| Bad block&lt;br /&gt;
|-&lt;br /&gt;
| -3&lt;br /&gt;
| Reserved block (used for SKSA area)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Emoose</name></author>
	</entry>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=IQueDiagExtend&amp;diff=38</id>
		<title>IQueDiagExtend</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=IQueDiagExtend&amp;diff=38"/>
		<updated>2018-03-24T15:24:28Z</updated>

		<summary type="html">&lt;p&gt;Emoose: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;iQueDiagExtend&amp;#039;&amp;#039;&amp;#039; is an extension for ique_diag.exe which adds additional commands to the ique_diag menu, such as reading the raw NAND or writing back modified data.&lt;br /&gt;
&lt;br /&gt;
While ique_diag has functions in the exe that allow for reading/writing the raw NAND, unfortunately they&amp;#039;re only ever used as part of other functions, with the raw NAND functions never exposed to the user.&lt;br /&gt;
&lt;br /&gt;
iQueDiagExtend hooks into the ique_diag menu, allowing us to add our own custom commands that can make use of those functions.&lt;br /&gt;
&lt;br /&gt;
Source code can be found at: https://github.com/emoose/iQueDiagExtend, with read-only builds available at https://github.com/emoose/iQueDiagExtend/releases.&lt;br /&gt;
&lt;br /&gt;
= Dumping =&lt;br /&gt;
To dump a NAND, connect the iQue to a system (or an XP VM) which has the iQue@Home drivers installed and run the ique_diag.exe. Then press &amp;#039;x&amp;#039;, if DiagExtend is working it should print a list of custom commands added by the hook.&lt;br /&gt;
&lt;br /&gt;
To start reading simply press &amp;#039;B&amp;#039; (uppercase) to connect ique_diag to your device, and then press &amp;#039;2&amp;#039;, progress on the dump will be printed every 16 blocks.&lt;br /&gt;
&lt;br /&gt;
If the dump is successful a nand.bin (67,108,864 bytes) &amp;amp; spare.bin (65,536 bytes) will appear next to the ique_diag.exe. (you should move these files between dumps, so that new dumps can be written to a fresh file)&lt;br /&gt;
&lt;br /&gt;
= Writing =&lt;br /&gt;
iQueDiagExtend also has support for writing back to the NAND, though the public iQueDiagExtend builds are missing these writing functions for safety reasons. You can easily compile a write-enabled build from source if you have VS2017 installed (or just ask for a build in the iQue Hacking discord)&lt;br /&gt;
&lt;br /&gt;
To write back to the device, first put the nand.bin/spare.bin you want to write in the same folder as ique_diag.exe, then open ique_diag and press &amp;#039;B&amp;#039; (uppercase) to connect.&lt;br /&gt;
&lt;br /&gt;
If you want to write the full nand.bin/spare.bin to the device simply press &amp;#039;3&amp;#039;, progress will be given as it writes.&lt;br /&gt;
&lt;br /&gt;
Alternatively if you only wish to write certain blocks to the device you can add ranges. For example, typing &amp;#039;3 0-0x100,4075&amp;#039; will write from the nand.bin only blocks 0 through 256, and block 4075. This can be much faster than needing to write the whole NAND each time!&lt;br /&gt;
&lt;br /&gt;
= Hotswapping =&lt;br /&gt;
Unfortunately there&amp;#039;s many iQue devices that lack any kind of USB support, due to the [[SKSA]] on them being an older version.&lt;br /&gt;
&lt;br /&gt;
Luckily, if you have another device that does have USB support, you can use that one to upgrade the non-USB card to a later USB-supporting SKSA version!&lt;br /&gt;
&lt;br /&gt;
* Firstly, power on your USB-compatible unit with the USB-compatible card inside&lt;br /&gt;
* Once booted, plug in the unit to your machine over USB (it should appear under device manager as &amp;quot;iQue Player&amp;quot;, as usual)&lt;br /&gt;
* Now with the unit still powered on, take the USB-compatible card out, and plug in the non-USB card&lt;br /&gt;
* On the PC open ique_diag.exe, and follow the steps in the &amp;quot;Dumping&amp;quot; / &amp;quot;Writing&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
Make sure not to power off the iQue during this process, as it&amp;#039;ll then try to boot up from the non-USB card.&lt;/div&gt;</summary>
		<author><name>Emoose</name></author>
	</entry>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=IQueDiagExtend&amp;diff=37</id>
		<title>IQueDiagExtend</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=IQueDiagExtend&amp;diff=37"/>
		<updated>2018-03-24T15:19:18Z</updated>

		<summary type="html">&lt;p&gt;Emoose: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;iQueDiagExtend&amp;#039;&amp;#039;&amp;#039; is an extension for ique_diag.exe which adds additional commands to the ique_diag menu, such as reading the raw NAND or writing back modified data.&lt;br /&gt;
&lt;br /&gt;
While ique_diag has functions in the exe that allow for reading/writing the raw NAND, unfortunately they&amp;#039;re only ever used as part of other functions, with the raw NAND functions never exposed to the user.&lt;br /&gt;
&lt;br /&gt;
iQueDiagExtend hooks into the ique_diag menu, allowing us to add our own custom commands that can make use of those functions.&lt;br /&gt;
&lt;br /&gt;
Source code can be found at: https://github.com/emoose/iQueDiagExtend, with read-only builds available at https://github.com/emoose/iQueDiagExtend/releases.&lt;br /&gt;
&lt;br /&gt;
= Dumping =&lt;br /&gt;
To dump a NAND, connect the iQue to a system (or an XP VM) which has the iQue@Home drivers installed and run the ique_diag.exe. Then press &amp;#039;x&amp;#039;, if DiagExtend is working it should print a list of custom commands added by the hook.&lt;br /&gt;
&lt;br /&gt;
To start reading simply press &amp;#039;B&amp;#039; (uppercase) to connect ique_diag to your device, and then press &amp;#039;2&amp;#039;, progress on the dump will be printed every 16 blocks.&lt;br /&gt;
&lt;br /&gt;
If the dump is successful a nand.bin (67,108,864 bytes) &amp;amp; spare.bin (65,536 bytes) will appear next to the ique_diag.exe. (you should move these files between dumps, so that new dumps can be written to a fresh file)&lt;br /&gt;
&lt;br /&gt;
= Writing =&lt;br /&gt;
iQueDiagExtend also has support for writing back to the NAND, though the public iQueDiagExtend builds are missing these writing functions for safety reasons. You can easily compile a write-enabled build from source if you have VS2017 installed (or just ask for a build in the iQue Hacking discord)&lt;br /&gt;
&lt;br /&gt;
To write back to the device, first put the nand.bin/spare.bin you want to write in the same folder as ique_diag.exe, then open ique_diag and press &amp;#039;B&amp;#039; (uppercase) to connect.&lt;br /&gt;
&lt;br /&gt;
If you want to write the full nand.bin/spare.bin to the device simply press &amp;#039;3&amp;#039;, progress will be given as it writes.&lt;br /&gt;
&lt;br /&gt;
Alternatively if you only wish to write certain blocks to the device you can add ranges. For example, typing &amp;#039;3 0-0x100,4075&amp;#039; will write from the nand.bin only blocks 0 through 256, and block 4075. This can be much faster than needing to write the whole NAND each time!&lt;br /&gt;
&lt;br /&gt;
= Hotswapping =&lt;br /&gt;
Unfortunately there&amp;#039;s many iQue devices that lack any kind of USB support, due to the [[SKSA]] on them being an older version.&lt;br /&gt;
&lt;br /&gt;
Luckily, if you have another device that does have USB support, you can use that one to upgrade the non-USB card to a later USB-supporting SKSA version!&lt;br /&gt;
&lt;br /&gt;
* Firstly, power on your USB-compatible unit with the USB-compatible card inside&lt;br /&gt;
* Once booted, plug in the unit to your machine over USB (it should appear under device manager as &amp;quot;iQue Player&amp;quot;, as usual)&lt;br /&gt;
* Now with the unit still powered on, take the USB-compatible card out, and plug in the non-USB card&lt;br /&gt;
* On the PC open ique_diag.exe, and follow the steps in the &amp;quot;Reading&amp;quot; / &amp;quot;Writing&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
Make sure not to power off the iQue during this process, as it&amp;#039;ll then try to boot up from the non-USB card.&lt;/div&gt;</summary>
		<author><name>Emoose</name></author>
	</entry>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=IQueDiagExtend&amp;diff=36</id>
		<title>IQueDiagExtend</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=IQueDiagExtend&amp;diff=36"/>
		<updated>2018-03-24T15:18:33Z</updated>

		<summary type="html">&lt;p&gt;Emoose: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;iQueDiagExtend&amp;#039;&amp;#039;&amp;#039; is an extension for ique_diag.exe which adds additional commands to the ique_diag menu, such as reading the raw NAND or writing back modified data.&lt;br /&gt;
&lt;br /&gt;
While ique_diag has functions in the exe that allow for reading/writing the raw NAND, unfortunately they&amp;#039;re only ever used as part of other functions, with the raw NAND functions never exposed to the user.&lt;br /&gt;
&lt;br /&gt;
iQueDiagExtend hooks into the ique_diag menu functions, allowing us to add our own custom commands that can make use of those functions.&lt;br /&gt;
&lt;br /&gt;
Source code can be found at: https://github.com/emoose/iQueDiagExtend, with read-only builds available at https://github.com/emoose/iQueDiagExtend/releases&lt;br /&gt;
&lt;br /&gt;
= Dumping =&lt;br /&gt;
To dump a NAND, connect the iQue to a system (or an XP VM) which has the iQue@Home drivers installed and run the ique_diag.exe. Then press &amp;#039;x&amp;#039;, if DiagExtend is working it should print a list of custom commands added by the hook.&lt;br /&gt;
&lt;br /&gt;
To start reading simply press &amp;#039;B&amp;#039; (uppercase) to connect ique_diag to your device, and then press &amp;#039;2&amp;#039;, progress on the dump will be printed every 16 blocks.&lt;br /&gt;
&lt;br /&gt;
If the dump is successful a nand.bin (67,108,864 bytes) &amp;amp; spare.bin (65,536 bytes) will appear next to the ique_diag.exe. (you should move these files between dumps, so that new dumps can be written to a fresh file)&lt;br /&gt;
&lt;br /&gt;
= Writing =&lt;br /&gt;
iQueDiagExtend also has support for writing back to the NAND, though the public iQueDiagExtend builds are missing these writing functions for safety reasons. You can easily compile a write-enabled build from source if you have VS2017 installed (or just ask for a build in the iQue Hacking discord)&lt;br /&gt;
&lt;br /&gt;
To write back to the device, first put the nand.bin/spare.bin you want to write in the same folder as ique_diag.exe, then open ique_diag and press &amp;#039;B&amp;#039; (uppercase) to connect.&lt;br /&gt;
&lt;br /&gt;
If you want to write the full nand.bin/spare.bin to the device simply press &amp;#039;3&amp;#039;, progress will be given as it writes.&lt;br /&gt;
&lt;br /&gt;
Alternatively if you only wish to write certain blocks to the device you can add ranges. For example, typing &amp;#039;3 0-0x100,4075&amp;#039; will write from the nand.bin only blocks 0 through 256, and block 4075. This can be much faster than needing to write the whole NAND each time!&lt;br /&gt;
&lt;br /&gt;
= Hotswapping =&lt;br /&gt;
Unfortunately there&amp;#039;s many iQue devices that lack any kind of USB support, due to the [[SKSA]] on them being an older version.&lt;br /&gt;
&lt;br /&gt;
Luckily, if you have another device that does have USB support, you can use that one to upgrade the non-USB card to a later USB-supporting SKSA version!&lt;br /&gt;
&lt;br /&gt;
* Firstly, power on your USB-compatible unit with the USB-compatible card inside&lt;br /&gt;
* Once booted, plug in the unit to your machine over USB (it should appear under device manager as &amp;quot;iQue Player&amp;quot;, as usual)&lt;br /&gt;
* Now with the unit still powered on, take the USB-compatible card out, and plug in the non-USB card&lt;br /&gt;
* On the PC open ique_diag.exe, and follow the steps in the &amp;quot;Reading&amp;quot; / &amp;quot;Writing&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
Make sure not to power off the iQue during this process, as it&amp;#039;ll then try to boot up from the non-USB card.&lt;/div&gt;</summary>
		<author><name>Emoose</name></author>
	</entry>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=IQueDiagExtend&amp;diff=35</id>
		<title>IQueDiagExtend</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=IQueDiagExtend&amp;diff=35"/>
		<updated>2018-03-24T15:11:49Z</updated>

		<summary type="html">&lt;p&gt;Emoose: TODO: maybe change these instructions into numbered lists?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;iQueDiagExtend&amp;#039;&amp;#039;&amp;#039; is an extension for ique_diag.exe which adds additional commands to the ique_diag menu, such as reading the raw NAND or writing back modified data.&lt;br /&gt;
&lt;br /&gt;
While ique_diag has functions in the exe that allow for reading/writing the raw NAND, unfortunately they&amp;#039;re only ever used as part of other functions, with the raw NAND functions never exposed to the user.&lt;br /&gt;
&lt;br /&gt;
iQueDiagExtend hooks into the ique_diag menu functions, allowing us to add our own custom commands that can make use of those functions.&lt;br /&gt;
&lt;br /&gt;
Source code can be found at: https://github.com/emoose/iQueDiagExtend, with read-only builds available at https://github.com/emoose/iQueDiagExtend/releases&lt;br /&gt;
&lt;br /&gt;
= Dumping =&lt;br /&gt;
To dump a NAND, connect the iQue to a system (or an XP VM) which has the iQue@Home drivers installed and run the ique_diag.exe. Then press &amp;#039;x&amp;#039;, if DiagExtend is working it should print a list of custom commands added by the hook.&lt;br /&gt;
&lt;br /&gt;
To start reading simply press &amp;#039;b&amp;#039; to connect ique_diag to your device, and then press &amp;#039;2&amp;#039;, progress on the dump will be printed every 16 blocks.&lt;br /&gt;
&lt;br /&gt;
If the dump is successful a nand.bin (67,108,864 bytes) &amp;amp; spare.bin (65,536 bytes) will appear next to the ique_diag.exe. (you should move these files between dumps, so that new dumps can be written to a fresh file)&lt;br /&gt;
&lt;br /&gt;
= Writing =&lt;br /&gt;
iQueDiagExtend also has support for writing back to the NAND, though the public iQueDiagExtend builds are missing these writing functions for safety reasons. You can easily compile a write-enabled build from source if you have VS2017 installed (or just ask for a build in the iQue Hacking discord)&lt;br /&gt;
&lt;br /&gt;
To write back to the device, first put the nand.bin/spare.bin you want to write in the same folder as ique_diag.exe, then open ique_diag and press &amp;#039;b&amp;#039; to connect.&lt;br /&gt;
&lt;br /&gt;
If you want to write the full nand.bin/spare.bin to the device simply press &amp;#039;3&amp;#039;, progress will be given as it writes.&lt;br /&gt;
&lt;br /&gt;
Alternatively if you only wish to write certain blocks to the device you can add ranges. For example, typing &amp;#039;3 0-0x100,4075&amp;#039; will write from the nand.bin only blocks 0 through 256, and block 4075. This can be much faster than needing to write the whole NAND each time!&lt;br /&gt;
&lt;br /&gt;
= Hotswapping =&lt;br /&gt;
Unfortunately there&amp;#039;s many iQue devices that lack any kind of USB support, due to the [[SKSA]] on them being an older version.&lt;br /&gt;
&lt;br /&gt;
Luckily, if you have another device that does have USB support, you can use that one to upgrade the non-USB card to a later USB-supporting SKSA version!&lt;br /&gt;
&lt;br /&gt;
* Firstly, power on your USB-compatible unit with the USB-compatible card inside&lt;br /&gt;
* Once booted, plug in the unit to your machine over USB (it should appear under device manager as &amp;quot;iQue Player&amp;quot;, as usual)&lt;br /&gt;
* Now with the unit still powered on, take the USB-compatible card out, and plug in the non-USB card&lt;br /&gt;
* On the PC open ique_diag.exe, and follow the steps in the &amp;quot;Reading&amp;quot; / &amp;quot;Writing&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
Make sure not to power off the iQue during this process, as it&amp;#039;ll then try to boot up from the non-USB card.&lt;/div&gt;</summary>
		<author><name>Emoose</name></author>
	</entry>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=SKSA&amp;diff=34</id>
		<title>SKSA</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=SKSA&amp;diff=34"/>
		<updated>2018-03-24T14:44:04Z</updated>

		<summary type="html">&lt;p&gt;Emoose: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;SKSA&amp;#039;&amp;#039;&amp;#039; (Secure Kernel / System App) is the &amp;quot;Upgradable Operating System&amp;quot; of the iQue Player, the main software that runs on the device.&lt;br /&gt;
&lt;br /&gt;
== Parts ==&lt;br /&gt;
As the name implies it consists of two parts: a &amp;quot;secure kernel&amp;quot;, and a &amp;quot;system app&amp;quot;. In later SKSAs the system-app area may also be divided into two sections: SA1 and SA2.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Secure Kernel&amp;#039;&amp;#039;&amp;#039;: the &amp;#039;boot1&amp;#039; of the iQue. Doesn&amp;#039;t ever seem to change between SKSA versions, so might be similar to the Wii boot1 where the hash of it is checked against a stored hash in the CPU. Probably only stored in NAND as it&amp;#039;s cheaper than storing in CPU.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;System App 1&amp;#039;&amp;#039;&amp;#039;: Consists of a [[Ticket|ticket]], followed by the actual SA1 data. Most SA1s are just the iQue Menu, though some seem to be factory/graphics tests. SA1 seems to be responsible for handling USB comms too.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;System App 2&amp;#039;&amp;#039;&amp;#039;: Also has a ticket, followed by SA2 data. Unknown purpose, in SKSAs that have an SA2 the SA1 size is greatly reduced compared to single-SA SKSAs, assumably they moved some data from SA1 into this, but it seems like dual-SA SA1s can run without needing the corresponding SA2?&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
The format of the SKSA is simple: a 64KiB SK, followed by SA1 (ticket + data), optionally followed by SA2 (ticket + data):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Length&lt;br /&gt;
! Type&lt;br /&gt;
! Information&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x10000&lt;br /&gt;
| encrypted bytes&lt;br /&gt;
| Secure Kernel&lt;br /&gt;
|-&lt;br /&gt;
| 0x10000&lt;br /&gt;
| 0x4000&lt;br /&gt;
| ticket&lt;br /&gt;
| SA1 ticket&lt;br /&gt;
|-&lt;br /&gt;
| 0x14000&lt;br /&gt;
| (sa1ticket.ContentSize)&lt;br /&gt;
| encrypted bytes&lt;br /&gt;
| SA1 data&lt;br /&gt;
|-&lt;br /&gt;
| 0x14000 + sa1ticket.ContentSize&lt;br /&gt;
| 0x4000&lt;br /&gt;
| ticket&lt;br /&gt;
| SA2 ticket&lt;br /&gt;
|-&lt;br /&gt;
| 0x18000 + sa1ticket.ContentSize&lt;br /&gt;
| sa2ticket.ContentSize&lt;br /&gt;
| encrypted bytes&lt;br /&gt;
| SA2 data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== NAND format ==&lt;br /&gt;
On NAND the format is slightly changed however: instead of storing the SA1 &amp;amp; SA2 data exactly as stored in the cached SKSA, the data is instead reversed in 0x4000 byte blocks (though tickets are unaffected). The NAND spare data is used to store pointers for these blocks, to allow for skipping any bad blocks in the SKSA area.&lt;br /&gt;
&lt;br /&gt;
See [https://github.com/emoose/iQueTool/blob/master/iQueTool/Files/iQueNand.cs#L207 SetSKSAData in iQueTool] for an example on how the blocks are transformed, or see [https://github.com/emoose/iQueTool/blob/master/iQueTool/Files/iQueNand.cs#L506 GenerateSpareData] for how the SAData in the spare is set.&lt;br /&gt;
&lt;br /&gt;
The [[BBFS]] FAT table also sets the SKSA blocks to 0xfffd (reserved), to ensure that no files will overwrite them.&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
A spreadsheet of the different SKSAs that have been tested (whether it boots, what happens when it boots, etc) is available [https://docs.google.com/spreadsheets/d/13wb-jwPEJ9HV2-XUbaLr3VVkGXTrX2LEf6cGce7WdU8/edit?usp=sharing here].&lt;/div&gt;</summary>
		<author><name>Emoose</name></author>
	</entry>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=NAND&amp;diff=25</id>
		<title>NAND</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=NAND&amp;diff=25"/>
		<updated>2018-03-24T13:39:16Z</updated>

		<summary type="html">&lt;p&gt;Emoose: TODO: BBFS entry / footer / spare data formats&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The iQue uses a 64MiB &amp;#039;&amp;#039;&amp;#039;NAND&amp;#039;&amp;#039;&amp;#039; flash, which consists of 4096 logical blocks of 16384 bytes each (made up of 32 512-byte pages)&lt;br /&gt;
&lt;br /&gt;
Each page also has 16 bytes of spare data, which is used for bad-block markers, error-correction codes and block-pointers for the [[SKSA|SA]] area. &lt;br /&gt;
&lt;br /&gt;
Unfortunately the I@H USB commands for reading/writing NAND can only access the last page-spare of each block, though hardware NAND writers can access all of them.&lt;br /&gt;
&lt;br /&gt;
== Block Map ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;0x0 - 0x40&amp;#039;&amp;#039;&amp;#039; - SKSA area, marked in the BBFS FAT as reserved&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;0x40 - 0xFF0&amp;#039;&amp;#039;&amp;#039; - data area, used for files in the BBFS&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;0xFF0 - 0x1000&amp;#039;&amp;#039;&amp;#039; - BBFS area, each block holds a copy of the BBFS along with a &amp;#039;sequence number&amp;#039;, highest sequence number is the latest BBFS.&lt;br /&gt;
&lt;br /&gt;
== BBFS ==&lt;br /&gt;
BBFS is the filesystem used on the iQue NAND, a very simple file-system used to store games and config data. The Wii NAND&amp;#039;s SFFS is actually very similar to BBFS, though with many more features.&lt;br /&gt;
&lt;br /&gt;
The BBFS is made up of three parts: a FAT (file-allocation table), an entry table and a footer:&lt;br /&gt;
&lt;br /&gt;
=== FAT ===&lt;br /&gt;
The FAT is located at 0x0 in the BBFS block, made up of 0x1000 16-bit signed integers (one for each block in the NAND). This is used to specify if a block may be reserved, bad or available, or it might point to another block in the &amp;#039;chain&amp;#039; (ie. file 0 points to block 0, block 0 points to block 2, block 2 points to block 15...), or signify the end of the chain.&lt;br /&gt;
&lt;br /&gt;
Files make use of the FAT by simply pointing to a block in the FAT as its start block. Extracting the file is then just a matter of following the chain of pointers in the FAT, reading in each block until you reach an end-of-chain marker.&lt;br /&gt;
&lt;br /&gt;
Possible FAT entries:&lt;br /&gt;
{| border=1&lt;br /&gt;
|-&lt;br /&gt;
! Value&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Free/unused block&lt;br /&gt;
|-&lt;br /&gt;
| -1&lt;br /&gt;
| End-of-chain marker&lt;br /&gt;
|-&lt;br /&gt;
| -2&lt;br /&gt;
| Bad block&lt;br /&gt;
|-&lt;br /&gt;
| -3&lt;br /&gt;
| Reserved block (used for SKSA area)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Emoose</name></author>
	</entry>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=SKSA&amp;diff=24</id>
		<title>SKSA</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=SKSA&amp;diff=24"/>
		<updated>2018-03-24T11:24:14Z</updated>

		<summary type="html">&lt;p&gt;Emoose: Created page with &amp;quot;&amp;#039;&amp;#039;&amp;#039;SKSA&amp;#039;&amp;#039;&amp;#039; (Secure Kernel / System App) is the &amp;quot;Upgradable Operating System&amp;quot; of the iQue Player, the main software that runs on the device.  == Parts == As the name implies it...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;SKSA&amp;#039;&amp;#039;&amp;#039; (Secure Kernel / System App) is the &amp;quot;Upgradable Operating System&amp;quot; of the iQue Player, the main software that runs on the device.&lt;br /&gt;
&lt;br /&gt;
== Parts ==&lt;br /&gt;
As the name implies it consists of two parts: a &amp;quot;secure kernel&amp;quot;, and a &amp;quot;system app&amp;quot;. In later SKSAs the system-app area may also be divided into two sections: SA1 and SA2.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Secure Kernel&amp;#039;&amp;#039;&amp;#039;: the &amp;#039;boot1&amp;#039; of the iQue. Doesn&amp;#039;t ever seem to change between SKSA versions, so might be similar to the Wii boot1 where the hash of it is checked against a stored hash in the CPU. Probably only stored in NAND as it&amp;#039;s cheaper than storing in CPU.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;System App 1&amp;#039;&amp;#039;&amp;#039;: Consists of a [[Ticket|ticket]], followed by the actual SA1 data. Most SA1s are just the iQue Menu, though some seem to be factory/graphics tests. SA1 seems to be responsible for handling USB comms too.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;System App 2&amp;#039;&amp;#039;&amp;#039;: Also has a ticket, followed by SA2 data. Unknown purpose, in SKSAs that have an SA2 the SA1 size is greatly reduced compared to single-SA SKSAs, assumably they moved some data from SA1 into this, but it seems like dual-SA SA1s can run without needing the corresponding SA2?&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
The format of the SKSA is simple: a 64KiB SK, followed by SA1 (ticket + data), optionally followed by SA2 (ticket + data):&lt;br /&gt;
{| border=1&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Length&lt;br /&gt;
! Type&lt;br /&gt;
! Information&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x10000&lt;br /&gt;
| encrypted bytes&lt;br /&gt;
| Secure Kernel&lt;br /&gt;
|-&lt;br /&gt;
| 0x10000&lt;br /&gt;
| 0x4000&lt;br /&gt;
| ticket&lt;br /&gt;
| SA1 ticket&lt;br /&gt;
|-&lt;br /&gt;
| 0x14000&lt;br /&gt;
| (sa1ticket.ContentSize)&lt;br /&gt;
| encrypted bytes&lt;br /&gt;
| SA1 data&lt;br /&gt;
|-&lt;br /&gt;
| 0x14000 + sa1ticket.ContentSize&lt;br /&gt;
| 0x4000&lt;br /&gt;
| ticket&lt;br /&gt;
| SA2 ticket&lt;br /&gt;
|-&lt;br /&gt;
| 0x18000 + sa1ticket.ContentSize&lt;br /&gt;
| sa2ticket.ContentSize&lt;br /&gt;
| encrypted bytes&lt;br /&gt;
| SA2 data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== NAND format ==&lt;br /&gt;
On NAND the format is slightly changed however: instead of storing the SA1 &amp;amp; SA2 data exactly as stored in the cached SKSA, the data is instead reversed in 0x4000 byte blocks (though tickets are unaffected). The NAND spare data is used to store pointers for these blocks, to allow for skipping any bad blocks in the SKSA area.&lt;br /&gt;
&lt;br /&gt;
See [https://github.com/emoose/iQueTool/blob/master/iQueTool/Files/iQueNand.cs#L207 SetSKSAData in iQueTool] for an example on how the blocks are transformed, or see [https://github.com/emoose/iQueTool/blob/master/iQueTool/Files/iQueNand.cs#L506 GenerateSpareData] for how the SAData in the spare is set.&lt;br /&gt;
&lt;br /&gt;
The [[BBFS]] FAT table also sets the SKSA blocks to 0xfffd (reserved), to ensure that no files will overwrite them.&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
A spreadsheet of the different SKSAs that have been tested (whether it boots, what happens when it boots, etc) is available [https://docs.google.com/spreadsheets/d/13wb-jwPEJ9HV2-XUbaLr3VVkGXTrX2LEf6cGce7WdU8/edit?usp=sharing here].&lt;/div&gt;</summary>
		<author><name>Emoose</name></author>
	</entry>
</feed>