<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.3dbrew.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Purpasmart</id>
	<title>3dbrew - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.3dbrew.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Purpasmart"/>
	<link rel="alternate" type="text/html" href="https://www.3dbrew.org/wiki/Special:Contributions/Purpasmart"/>
	<updated>2026-04-11T20:49:34Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=DSP:LoadComponent&amp;diff=12869</id>
		<title>DSP:LoadComponent</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=DSP:LoadComponent&amp;diff=12869"/>
		<updated>2015-06-21T21:29:18Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Index Word&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Header code [0x001100c2]&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| size&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| (halfword) (observed 0x00FF) (Program ram blocks the component should be loaded into)&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| (halfword) (observed 0x00FF) (Data ram blocks the component should be loaded into)&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| (size&amp;lt;&amp;lt;4)  &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; 0xA&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| buffer&lt;br /&gt;
|}&lt;br /&gt;
=Response=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Index Word&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Header code [0x00110082]&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Resultcode&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| (Byte)ComponentLoaded (0 is not loaded 1 is loaded)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
This has been observed to call a subroutine which calls a string named &amp;quot;synthe&amp;quot;&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=DSP:InvalidateDCache&amp;diff=12868</id>
		<title>DSP:InvalidateDCache</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=DSP:InvalidateDCache&amp;diff=12868"/>
		<updated>2015-06-21T21:01:26Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Index Word&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Header code [0x00140082]&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Address&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Size&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Value zero&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| [[KProcess]] handle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Index Word&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Header code [0x00140040]&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Result code&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
This calls [[SVC|svcInvalidateProcessDataCache]] with the specified KProcess handle, address, and size. The address must be within the application GSP [[Memory_layout|heap]], or the DSP region.&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=DSP:RegisterInterruptEvents&amp;diff=12867</id>
		<title>DSP:RegisterInterruptEvents</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=DSP:RegisterInterruptEvents&amp;diff=12867"/>
		<updated>2015-06-21T21:00:54Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Index Word&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Header code [0x00150082]&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| param0&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| param1&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Event handle, 0 for unregister the event that was previous registered&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Index Word&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Header code [0x00150040]&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Result code&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Application should unregister the event by setting handle to zero, if the session was closed before the event is unregisterd, it will cause a handle leak in dsp process.&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=DSP:FlushDataCache&amp;diff=12866</id>
		<title>DSP:FlushDataCache</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=DSP:FlushDataCache&amp;diff=12866"/>
		<updated>2015-06-21T21:00:11Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Index Word&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Header code [0x00130082]&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Address&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Size&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Value zero&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| [[KProcess]] handle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Index Word&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Header code [0x00130040]&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Result code&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
This calls [[SVC|svcFlushProcessDataCache]] with the specified KProcess handle, address, and size. The address must be within the application GSP [[Memory_layout|heap]].&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=DSP:FlushDataCache&amp;diff=12865</id>
		<title>DSP:FlushDataCache</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=DSP:FlushDataCache&amp;diff=12865"/>
		<updated>2015-06-21T20:30:30Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Index Word&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Header code [0x00130082]&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Address&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Size&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Value zero&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| [[KProcess]] handle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Index Word&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Header code [0x00130040] (not fully verified)&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Result code&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
This calls [[SVC|svcFlushProcessDataCache]] with the specified KProcess handle, address, and size. The address must be within the application GSP [[Memory_layout|heap]].&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=DSP:InvalidateDCache&amp;diff=12864</id>
		<title>DSP:InvalidateDCache</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=DSP:InvalidateDCache&amp;diff=12864"/>
		<updated>2015-06-21T20:17:38Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Index Word&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Header code [0x00140082]&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Address&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Size&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Value zero&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| [[KProcess]] handle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Index Word&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Header code [0x00140040] (not fully verified)&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Result code&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
This calls [[SVC|svcInvalidateProcessDataCache]] with the specified KProcess handle, address, and size. The address must be within the application GSP [[Memory_layout|heap]], or the DSP region.&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=DSP:FlushDataCache&amp;diff=12863</id>
		<title>DSP:FlushDataCache</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=DSP:FlushDataCache&amp;diff=12863"/>
		<updated>2015-06-21T20:14:29Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: Created page with &amp;quot;=Request= {| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; |- !  Index Word !  Description |- | 0 | Header code [0x00130082] |- | 1 | Address |- | 2 | Size |- | 3 | Value zero |- | 4 | [[KProcess...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Index Word&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Header code [0x00130082]&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Address&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Size&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Value zero&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| [[KProcess]] handle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Index Word&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Header code&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Result code&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
This calls [[SVC|svcFlushProcessDataCache]] with the specified KProcess handle, address, and size. The address must be within the application GSP [[Memory_layout|heap]].&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=DSP_Services&amp;diff=12862</id>
		<title>DSP Services</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=DSP_Services&amp;diff=12862"/>
		<updated>2015-06-21T20:13:31Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Services]]&lt;br /&gt;
= DSP service &amp;quot;dsp::DSP&amp;quot; =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010040&lt;br /&gt;
| RecvData(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020040&lt;br /&gt;
| RecvDataIsReady(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00030080&lt;br /&gt;
| SendData(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040040&lt;br /&gt;
| SendDataIsEmpty(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x000500C2&lt;br /&gt;
| SendFifoEx(unsigned short, unsigned short const*, unsigned int, unsigned int)&lt;br /&gt;
|-&lt;br /&gt;
| 0x000600C0&lt;br /&gt;
| RecvFifoEx(unsigned short *, unsigned short, unsigned int, unsigned int)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00070040&lt;br /&gt;
| [[DSP:WriteReg0x10|WriteReg0x10]] SetSemaphore&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080000&lt;br /&gt;
| GetSemaphore(unsigned short * pMask)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090040&lt;br /&gt;
| ClearSemaphore(unsigned short mask)&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A0040&lt;br /&gt;
| MaskSemaphore(unsigned short mask)&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B0000&lt;br /&gt;
| CheckSemaphoreRequest(bool * pIsRequested )&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0040&lt;br /&gt;
| [[DSP:ConvertProcessAddressFromDspDram|ConvertProcessAddressFromDspDram]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D0082&lt;br /&gt;
| [[DSP:WriteProcessPipe|WriteProcessPipe]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000E00C0&lt;br /&gt;
| ReadPipe(int, int, unsigned char *, unsigned short)&lt;br /&gt;
|-&lt;br /&gt;
| 0x000F0080&lt;br /&gt;
| GetPipeReadableSize(int, int, unsigned short *)&lt;br /&gt;
|-&lt;br /&gt;
| 0x001000C0&lt;br /&gt;
| [[DSP:ReadPipeIfPossible|ReadPipeIfPossible]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001100C2&lt;br /&gt;
| [[DSP:LoadComponent|LoadComponent]]. This requires RSA-signed DSP firmware specified via the input buffer for this command, the firmware data is eventually written to DSPmem+0(0x1FF00000).&lt;br /&gt;
|-&lt;br /&gt;
| 0x00120000&lt;br /&gt;
| UnloadComponent&lt;br /&gt;
|-&lt;br /&gt;
| 0x00130082&lt;br /&gt;
| [[DSP:FlushDataCache|FlushDataCache]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00140082&lt;br /&gt;
| [[DSP:InvalidateDCache|InvalidateDCache]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00150082&lt;br /&gt;
| [[DSP:RegisterInterruptEvents|RegisterInterruptEvents(param0, param1, 0, eventhandle)]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00160000&lt;br /&gt;
| [[DSP:GetSemaphoreEventHandle|GetSemaphoreEventHandle]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00170040&lt;br /&gt;
| [[DSP:SetSemaphoreMask|SetSemaphoreMask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00180040&lt;br /&gt;
| GetPhysicalAddress (0x14000000+ -&amp;gt; 0x20000000+, 0x1FF00000+ -&amp;gt; 0x1FF00000+, 0x08000000-0x0E000000 -&amp;gt; 0x00000000+, 0 otherwise)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00190040&lt;br /&gt;
| GetVirtualAddress (0x20000000+ -&amp;gt; 0x14000000+, 0x1FF00000+ -&amp;gt; 0x1FF00000+, 0 otherwise)&lt;br /&gt;
|-&lt;br /&gt;
| 0x001A0042&lt;br /&gt;
| SetIirFilterI2S1. Wrapper for cdc:DSP cmd 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x001B0042&lt;br /&gt;
| SetIirFilterI2S2. Wrapper for cdc:DSP cmd 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x001C0082&lt;br /&gt;
| SetIirFilterEQ. Wrapper for cdc:DSP cmd 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x001D00C0&lt;br /&gt;
| ReadMultiEx_SPI2(unsigned char, unsigned char, unsigned char *, unsigned char) (Wrapper for cdc:DSP cmd 4)&lt;br /&gt;
|-&lt;br /&gt;
| 0x001E00C2&lt;br /&gt;
| WriteMultiEx_SPI2(unsigned char, unsigned char, unsigned char const*, unsigned char) (Wrapper for cdc:DSP cmd 5)&lt;br /&gt;
|-&lt;br /&gt;
| 0x001F0000&lt;br /&gt;
| GetHeadphoneStatus(bool *isConnected). Wrapper for cdc:DSP cmd 6&lt;br /&gt;
|-&lt;br /&gt;
| 0x00200040&lt;br /&gt;
| ForceHeadphoneOut(bool forceout) (Wrapper for cdc:DSP cmd 8)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00210000&lt;br /&gt;
| GetIsDspOccupied(bool *) returns a byte (can be 1 or 0) can be set to 1 in LoadComponent&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is the main service for playing audio. The [[CSND_Services|CSND]] service can be used for playing audio as well, however most processes use this DSP service for playing audio. The DSP and CSND hardware can play audio simultaneously.&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=DSP:InvalidateDCache&amp;diff=12861</id>
		<title>DSP:InvalidateDCache</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=DSP:InvalidateDCache&amp;diff=12861"/>
		<updated>2015-06-21T20:10:45Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: Created page with &amp;quot;=Request= {| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; |- !  Index Word !  Description |- | 0 | Header code [0x00140082] |- | 1 | Address |- | 2 | Size |- | 3 | Value zero |- | 4 | [[KProcess...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Index Word&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Header code [0x00140082]&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Address&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Size&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Value zero&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| [[KProcess]] handle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Index Word&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Header code&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Result code&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
This calls [[SVC|svcInvalidateProcessDataCache]] with the specified KProcess handle, address, and size. The address must be within the application GSP [[Memory_layout|heap]], or the DSP region.&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=DSP_Services&amp;diff=12860</id>
		<title>DSP Services</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=DSP_Services&amp;diff=12860"/>
		<updated>2015-06-21T20:06:59Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Services]]&lt;br /&gt;
= DSP service &amp;quot;dsp::DSP&amp;quot; =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010040&lt;br /&gt;
| RecvData(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020040&lt;br /&gt;
| RecvDataIsReady(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00030080&lt;br /&gt;
| SendData(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040040&lt;br /&gt;
| SendDataIsEmpty(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x000500C2&lt;br /&gt;
| SendFifoEx(unsigned short, unsigned short const*, unsigned int, unsigned int)&lt;br /&gt;
|-&lt;br /&gt;
| 0x000600C0&lt;br /&gt;
| RecvFifoEx(unsigned short *, unsigned short, unsigned int, unsigned int)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00070040&lt;br /&gt;
| [[DSP:WriteReg0x10|WriteReg0x10]] SetSemaphore&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080000&lt;br /&gt;
| GetSemaphore(unsigned short * pMask)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090040&lt;br /&gt;
| ClearSemaphore(unsigned short mask)&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A0040&lt;br /&gt;
| MaskSemaphore(unsigned short mask)&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B0000&lt;br /&gt;
| CheckSemaphoreRequest(bool * pIsRequested )&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0040&lt;br /&gt;
| [[DSP:ConvertProcessAddressFromDspDram|ConvertProcessAddressFromDspDram]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D0082&lt;br /&gt;
| [[DSP:WriteProcessPipe|WriteProcessPipe]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000E00C0&lt;br /&gt;
| ReadPipe(int, int, unsigned char *, unsigned short)&lt;br /&gt;
|-&lt;br /&gt;
| 0x000F0080&lt;br /&gt;
| GetPipeReadableSize(int, int, unsigned short *)&lt;br /&gt;
|-&lt;br /&gt;
| 0x001000C0&lt;br /&gt;
| [[DSP:ReadPipeIfPossible|ReadPipeIfPossible]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001100C2&lt;br /&gt;
| [[DSP:LoadComponent|LoadComponent]]. This requires RSA-signed DSP firmware specified via the input buffer for this command, the firmware data is eventually written to DSPmem+0(0x1FF00000).&lt;br /&gt;
|-&lt;br /&gt;
| 0x00120000&lt;br /&gt;
| UnloadComponent&lt;br /&gt;
|-&lt;br /&gt;
| 0x00130082&lt;br /&gt;
| FlushDataCache (The buffer must be located in the 0x14000000 region)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00140082&lt;br /&gt;
| [[DSP:InvalidateDCache|InvalidateDCache]]. (The buffer must be located in either the 0x14000000 region, or the DSP memory region)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00150082&lt;br /&gt;
| [[DSP:RegisterInterruptEvents|RegisterInterruptEvents(param0, param1, 0, eventhandle)]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00160000&lt;br /&gt;
| [[DSP:GetSemaphoreEventHandle|GetSemaphoreEventHandle]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00170040&lt;br /&gt;
| [[DSP:SetSemaphoreMask|SetSemaphoreMask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00180040&lt;br /&gt;
| GetPhysicalAddress (0x14000000+ -&amp;gt; 0x20000000+, 0x1FF00000+ -&amp;gt; 0x1FF00000+, 0x08000000-0x0E000000 -&amp;gt; 0x00000000+, 0 otherwise)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00190040&lt;br /&gt;
| GetVirtualAddress (0x20000000+ -&amp;gt; 0x14000000+, 0x1FF00000+ -&amp;gt; 0x1FF00000+, 0 otherwise)&lt;br /&gt;
|-&lt;br /&gt;
| 0x001A0042&lt;br /&gt;
| SetIirFilterI2S1. Wrapper for cdc:DSP cmd 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x001B0042&lt;br /&gt;
| SetIirFilterI2S2. Wrapper for cdc:DSP cmd 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x001C0082&lt;br /&gt;
| SetIirFilterEQ. Wrapper for cdc:DSP cmd 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x001D00C0&lt;br /&gt;
| ReadMultiEx_SPI2(unsigned char, unsigned char, unsigned char *, unsigned char) (Wrapper for cdc:DSP cmd 4)&lt;br /&gt;
|-&lt;br /&gt;
| 0x001E00C2&lt;br /&gt;
| WriteMultiEx_SPI2(unsigned char, unsigned char, unsigned char const*, unsigned char) (Wrapper for cdc:DSP cmd 5)&lt;br /&gt;
|-&lt;br /&gt;
| 0x001F0000&lt;br /&gt;
| GetHeadphoneStatus(bool *isConnected). Wrapper for cdc:DSP cmd 6&lt;br /&gt;
|-&lt;br /&gt;
| 0x00200040&lt;br /&gt;
| ForceHeadphoneOut(bool forceout) (Wrapper for cdc:DSP cmd 8)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00210000&lt;br /&gt;
| GetIsDspOccupied(bool *) returns a byte (can be 1 or 0) can be set to 1 in LoadComponent&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is the main service for playing audio. The [[CSND_Services|CSND]] service can be used for playing audio as well, however most processes use this DSP service for playing audio. The DSP and CSND hardware can play audio simultaneously.&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=DSP:RegisterInterruptEvents&amp;diff=12849</id>
		<title>DSP:RegisterInterruptEvents</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=DSP:RegisterInterruptEvents&amp;diff=12849"/>
		<updated>2015-06-19T20:27:30Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Index Word&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Header code [0x00150082]&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| param0&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| param1&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Event handle, 0 for unregister the event that was previous registered&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Index Word&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Header code [0x00150040] (not fully verified)&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Result code&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Application should unregister the event by setting handle to zero, if the session was closed before the event is unregisterd, it will cause a handle leak in dsp process.&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=DSP:RegisterInterruptEvents&amp;diff=12846</id>
		<title>DSP:RegisterInterruptEvents</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=DSP:RegisterInterruptEvents&amp;diff=12846"/>
		<updated>2015-06-19T06:27:21Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Index Word&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Header code [0x00150082]&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| param0&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| param1&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Event handle, 0 for unregister the event that was previous registered&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Index Word&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Header code [0x00150040]&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Result code&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Application should unregister the event by setting handle to zero, if the session was closed before the event is unregisterd, it will cause a handle leak in dsp process.&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Config_Savegame&amp;diff=12664</id>
		<title>Config Savegame</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Config_Savegame&amp;diff=12664"/>
		<updated>2015-05-19T05:39:55Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the format of the [[Config_Services|Cfg]] [[System_SaveData|NAND]] savegame. These blocks can be accessed with the Cfg service commands.&lt;br /&gt;
&lt;br /&gt;
==Structure of save-file &amp;quot;/config&amp;quot;==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x2&lt;br /&gt;
| Total entries&lt;br /&gt;
|-&lt;br /&gt;
| 0x2&lt;br /&gt;
| 0x2&lt;br /&gt;
| Data entries offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4558&lt;br /&gt;
| Block entries&lt;br /&gt;
|-&lt;br /&gt;
| 0x455C&lt;br /&gt;
| &lt;br /&gt;
| Data for the entries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The filesize for this /config file is 0x8000-bytes.&lt;br /&gt;
&lt;br /&gt;
==Configuration block entry ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| BlkID&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| Offset to the data for this block when size is &amp;gt;4, otherwise this word is the data for this block&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x2&lt;br /&gt;
| Size&lt;br /&gt;
|-&lt;br /&gt;
| 0xA&lt;br /&gt;
| 0x2&lt;br /&gt;
| Flags&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Configuration blocks==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  BlkID&lt;br /&gt;
!  Size&lt;br /&gt;
!  Flags&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040000&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x8&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040001&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 0x8&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040002&lt;br /&gt;
| 0x12&lt;br /&gt;
| 0x8&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040003&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x8&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050001&lt;br /&gt;
| 0x2&lt;br /&gt;
| 0x8&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050002&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x8&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050003&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x8&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050005&lt;br /&gt;
| 0x20&lt;br /&gt;
|?&lt;br /&gt;
| Stereo camera settings?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050006&lt;br /&gt;
| 0x2&lt;br /&gt;
| 0x8&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00070001&lt;br /&gt;
| 0x1&lt;br /&gt;
|?&lt;br /&gt;
| Sound output mode?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080000&lt;br /&gt;
| 0xC00&lt;br /&gt;
| 0x2?&lt;br /&gt;
| WiFi configuration slot 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080001&lt;br /&gt;
| 0xC00&lt;br /&gt;
| 0x2?&lt;br /&gt;
| WiFi configuration slot 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080002&lt;br /&gt;
| 0xC00&lt;br /&gt;
| 0x2?&lt;br /&gt;
| WiFi configuration slot 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090000&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x2?&lt;br /&gt;
| This contains a u64 ID, used by processes using [[NWMUDS:Initialize]]. The first word is the same as [[CfgS:GetLocalFriendCodeSeed|LocalFriendCodeSeed]], while the latter is a separate random word&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090001&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0xE&lt;br /&gt;
| This console-unique u64 used by [[Cfg:GenHashConsoleUnique|GenHashConsoleUnique]] is generated with the LocalFriendCodeSeed and with random data&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A0000&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 0xE&lt;br /&gt;
| Username&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A0001&lt;br /&gt;
| 0x2&lt;br /&gt;
| 0x2&lt;br /&gt;
| ??&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A0002&lt;br /&gt;
| 0x1&lt;br /&gt;
| 0xA&lt;br /&gt;
| Language&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B0000&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x8&lt;br /&gt;
| CountryInfo&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B0001&lt;br /&gt;
| 0x800&lt;br /&gt;
| 0x2?&lt;br /&gt;
| Country name in UTF-16, every 0x80-bytes is an entry for each language(not all entries are set)&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B0002&lt;br /&gt;
| 0x800&lt;br /&gt;
| 0x2?&lt;br /&gt;
| State name in UTF-16, every 0x80-bytes is an entry for each language&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0000&lt;br /&gt;
| 0xC0&lt;br /&gt;
|?&lt;br /&gt;
| Restricted photo exchange data, and other info&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0001&lt;br /&gt;
| 0x14&lt;br /&gt;
|?&lt;br /&gt;
| Same as above?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D0000&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x2&lt;br /&gt;
| u16 at offset 0x0: [[SMDH#EULA_Version|EULA Version]] which was agreed to.&lt;br /&gt;
|-&lt;br /&gt;
| 0x000F0000&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x8?&lt;br /&gt;
| Unknown, used by [[NS]] on dev-units for [[SVC|svcKernelSetState]], where Type is 6. During NS startup on debug-units, NS compares the u32 from +8 in this config-block with the [[Configuration_Memory#APPMEMTYPE|APPMEMTYPE]]. When those don&#039;t match NS starts a FIRM-launch (with the same FIRM titleID as the currently running one) to boot into a FIRM with the APPMEMTYPE value from this config-block&lt;br /&gt;
|-&lt;br /&gt;
| 0x000F0004&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x8?&lt;br /&gt;
| The first u8 is the System-Model [[Cfg:GetSystemModel|value]], the last 3-bytes are unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x00110000&lt;br /&gt;
| 0x4&lt;br /&gt;
|?&lt;br /&gt;
| The low u16 indicates whether the system setup is required, such as when the system is booted for the first time or after doing a [[System Settings|System Format]]: 0 = setup required, non-zero = no setup required&lt;br /&gt;
|-&lt;br /&gt;
| 0x00110001&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0xA?&lt;br /&gt;
| TitleID of the menu to launch, used by [[NS]] on dev units (this block can be edited on dev units with [[3DS Development Unit Software#Config|Config]])&lt;br /&gt;
|-&lt;br /&gt;
| 0x00120000&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x8&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00130000&lt;br /&gt;
| 0x4&lt;br /&gt;
|?&lt;br /&gt;
| If response is 0x100 then debug mode is enabled.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00160000&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x8?&lt;br /&gt;
| Unknown, first byte is used by config service-cmd [[Config_Services|0x00070040]]. (Unknown whether the last 3-bytes are used)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The developer unit TID block only exists on developer units.&lt;br /&gt;
&lt;br /&gt;
===Languages===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  ID&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| JP&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| EN&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| FR&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| DE&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| IT&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| ES&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| ZH&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| KO&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| NL&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| PT&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| RU&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| TW&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===CountryInfo===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Byte&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Country code, same as DSi/Wii country codes. Value 0xFF is invalid.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===0x000A0000 Block===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Byte&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0-0x13&lt;br /&gt;
| UTF-16 username, with no NULL-terminator.&lt;br /&gt;
|-&lt;br /&gt;
| 0x14-17&lt;br /&gt;
| Usually zero?&lt;br /&gt;
|-&lt;br /&gt;
| 0x18-0x1B&lt;br /&gt;
| u32 NGWord version the username was last checked with. If this value is less than the u32 stored in the NGWord CFA &amp;quot;romfs:/version.dat&amp;quot;, the system then checks the username string with the bad-word list CFA again, then updates this field with the value from the CFA&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=GPIO_Services&amp;diff=12662</id>
		<title>GPIO Services</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=GPIO_Services&amp;diff=12662"/>
		<updated>2015-05-18T00:00:58Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Services]]&lt;br /&gt;
= GPIO Service Names =&lt;br /&gt;
* &amp;quot;gpio:CDC&amp;quot;&lt;br /&gt;
* &amp;quot;gpio:MCU&amp;quot;&lt;br /&gt;
* &amp;quot;gpio:HID&amp;quot;&lt;br /&gt;
* &amp;quot;gpio:NWM&amp;quot;&lt;br /&gt;
* &amp;quot;gpio:IR&amp;quot;&lt;br /&gt;
* &amp;quot;gpio:NFC&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= HID Service =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020080&lt;br /&gt;
| u32 unk, u32 unk&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040080&lt;br /&gt;
| u32 unk, u32 unk&lt;br /&gt;
|-&lt;br /&gt;
| 0x00060080&lt;br /&gt;
| u32 unk, u32 unk&lt;br /&gt;
|-&lt;br /&gt;
| 0x00070040&lt;br /&gt;
| u32 unk&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= I2C Service =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0001....&lt;br /&gt;
| ?(u32 unk1,u32* ret) //reads from 0x1ec47020&lt;br /&gt;
|-&lt;br /&gt;
| 0x0002....&lt;br /&gt;
| ?(u32 unk1,u32 unk2)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0003....&lt;br /&gt;
| ?(u32 unk1,u32* ret)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0004....&lt;br /&gt;
| ?(u32 unk1,u32 unk2)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0005....&lt;br /&gt;
| ?(u32 unk1,u32* ret)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0006....&lt;br /&gt;
| ?(u32 unk1,u32 unk2)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0007....&lt;br /&gt;
| GetIRGPIO(u32 unk1,u32* ret)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0008....&lt;br /&gt;
| SetIRGPIO(u32 unk1,u32 unk2)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090082&lt;br /&gt;
| ?(u32 unk1,u32 unk2,HANDEL unk3)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=I2C_Services&amp;diff=12661</id>
		<title>I2C Services</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=I2C_Services&amp;diff=12661"/>
		<updated>2015-05-17T23:52:57Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Services]]&lt;br /&gt;
= I2C Service Names =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Service names&lt;br /&gt;
!  Notes&lt;br /&gt;
!  Accessible [[I2C_Registers|deviceIDs]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;quot;i2c::MCU&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
| 0, 3&lt;br /&gt;
|-&lt;br /&gt;
| &amp;quot;i2c::CAM&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
| 1, 2, 4&lt;br /&gt;
|-&lt;br /&gt;
| &amp;quot;i2c::LCD&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
| 5, 6&lt;br /&gt;
|-&lt;br /&gt;
| &amp;quot;i2c::DEB&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
| 7, 8&lt;br /&gt;
|-&lt;br /&gt;
| &amp;quot;i2c::HID&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
| 9, 10, 11, 12&lt;br /&gt;
|-&lt;br /&gt;
| &amp;quot;i2c::IR&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
| 13, and additionally for New3DS i2c module: 17&lt;br /&gt;
|-&lt;br /&gt;
| &amp;quot;i2c::EEP&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| &amp;quot;i2c::NFC&amp;quot;&lt;br /&gt;
| Only available via the New3DS i2c sysmodule.&lt;br /&gt;
| 15&lt;br /&gt;
|-&lt;br /&gt;
| &amp;quot;i2c::QTM&amp;quot;&lt;br /&gt;
| Only available via the New3DS i2c sysmodule.&lt;br /&gt;
| 16&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Each I2C service can only access certain I2C [[I2C_Registers|device(s)]]. When the specified deviceid isn&#039;t accessible, error 0xE0A02FEA is returned.&lt;br /&gt;
&lt;br /&gt;
= I2C Service =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Available since system-version&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010100&lt;br /&gt;
| &lt;br /&gt;
| SetRegisterBits8 (u8 devid, u8 regid, u8 regdata, u8 mask)&lt;br /&gt;
|-&lt;br /&gt;
| 0x000200C0&lt;br /&gt;
| &lt;br /&gt;
| EnableRegisterBits8 (u8 devid, u8 regid, u8 enablemask)&lt;br /&gt;
|-&lt;br /&gt;
| 0x000300C0&lt;br /&gt;
| &lt;br /&gt;
| DisableRegisterBits8 (u8 devid, u8 regid, u8 disablemask)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040102&lt;br /&gt;
| &lt;br /&gt;
| MultiSetRegisterBits16 (u16 regid, u16 regdata, u16 mask, devcount, u8* devidlistptr)&lt;br /&gt;
|-&lt;br /&gt;
| 0x000500C0&lt;br /&gt;
| &lt;br /&gt;
| WriteRegister8 (u8 devid, u8 regid, u8 regdata)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0006....&lt;br /&gt;
| &lt;br /&gt;
| WriteCommand8 (u8 devid, u8 cmdid)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0007....&lt;br /&gt;
| &lt;br /&gt;
| WriteRegister16 (u8 devid, u16 regid, u16 regdata)&lt;br /&gt;
|-&lt;br /&gt;
| 0x000800C2&lt;br /&gt;
| &lt;br /&gt;
| MultiWriteRegister16 (u16 regid, u16 regdata, devcount, u8* devidlistptr)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0009....&lt;br /&gt;
| &lt;br /&gt;
| u8 ReadRegister8 (u8 devid, u8 regid)&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A....&lt;br /&gt;
| &lt;br /&gt;
| u16 ReadRegister16 (u8 devid, u16 regid)&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B00C2&lt;br /&gt;
| &lt;br /&gt;
| WriteRegisterBuffer8 (u8 devid, u8 regid, buffersize, (buffersize &amp;lt;&amp;lt; 14) &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; 0x402, u8* bufferptr)&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C00C2&lt;br /&gt;
| &lt;br /&gt;
| WriteRegisterBuffer16 (u8 devid, u16 regid, buffersize, (buffersize &amp;lt;&amp;lt; 15) &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; 0x402, u16* bufferptr)&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D00C0&lt;br /&gt;
| &lt;br /&gt;
| ReadRegisterBuffer8 (u8 devid, u8 regid, buffersize, +0x180: (buffersize &amp;lt;&amp;lt; 14) &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; 2, +0x184: u8 bufferptr)&lt;br /&gt;
|-&lt;br /&gt;
| 0x000E00C2&lt;br /&gt;
| &lt;br /&gt;
| WriteRegisterBuffer8_again? (u8 devid, u8 regid, buffersize, u8* bufferptr)&lt;br /&gt;
|-&lt;br /&gt;
| 0x000F....&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 0x0010....&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 0x001100C2&lt;br /&gt;
| &lt;br /&gt;
| ReadRegisterBuffer(u8 devid, u16 regid, buffersize, u8 *buff)&lt;br /&gt;
|-&lt;br /&gt;
| 0x001200C2&lt;br /&gt;
| &lt;br /&gt;
| WriteRegisterBuffer(u8 devid, u16 regid, buffersize, u8 *buff)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00130040&lt;br /&gt;
| [[8.0.0-18]]&lt;br /&gt;
| ReadDeviceRaw8(u8 devid) Writes the output read u8 I2C data to cmdreply[2]. After successfully selecting the I2C device, it writes 0xE1 to CNT then loads the output u8 I2C data from the DATA register.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00140082&lt;br /&gt;
| [[8.0.0-18]]&lt;br /&gt;
| WriteDeviceRaw(u8 devid, u32 buffersize, (buffersize &amp;lt;&amp;lt; 14) &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; 0x402, bufferptr) This is basically the write-data version of command 0x00150080.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00150080&lt;br /&gt;
| [[8.0.0-18]]&lt;br /&gt;
| ReadDeviceRaw(u8 devid, u32 buffersize, +0x180: (buffersize &amp;lt;&amp;lt; 14) &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; 2, +0x184: bufferptr) This is the &amp;gt;1-byte version of command 0x00130040, except value 0xF0 is used for CNT instead of 0xE1.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Commands 0x00130040..0x00150080 are only usable with the New3DS i2c module: on Old3DS the actual command-handler function for each of these commands just return an error. Commands 0x00140082 and 0x00150080 are used by [[NFC_Services|NFC]] module.&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=GPIO_Services&amp;diff=12657</id>
		<title>GPIO Services</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=GPIO_Services&amp;diff=12657"/>
		<updated>2015-05-17T22:10:25Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Services]]&lt;br /&gt;
= GPIO Service Names =&lt;br /&gt;
* &amp;quot;gpio:CDC&amp;quot;&lt;br /&gt;
* &amp;quot;gpio:MCU&amp;quot;&lt;br /&gt;
* &amp;quot;gpio:HID&amp;quot;&lt;br /&gt;
* &amp;quot;gpio:NWM&amp;quot;&lt;br /&gt;
* &amp;quot;gpio:IR&amp;quot;&lt;br /&gt;
* &amp;quot;gpio:NFC&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= HID Service =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00070040&lt;br /&gt;
| u32 unk&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= I2C Service =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0001....&lt;br /&gt;
| ?(u32 unk1,u32* ret) //reads from 0x1ec47020&lt;br /&gt;
|-&lt;br /&gt;
| 0x0002....&lt;br /&gt;
| ?(u32 unk1,u32 unk2)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0003....&lt;br /&gt;
| ?(u32 unk1,u32* ret)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0004....&lt;br /&gt;
| ?(u32 unk1,u32 unk2)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0005....&lt;br /&gt;
| ?(u32 unk1,u32* ret)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0006....&lt;br /&gt;
| ?(u32 unk1,u32 unk2)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0007....&lt;br /&gt;
| GetIRGPIO(u32 unk1,u32* ret)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0008....&lt;br /&gt;
| SetIRGPIO(u32 unk1,u32 unk2)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090082&lt;br /&gt;
| ?(u32 unk1,u32 unk2,HANDEL unk3)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Services_API&amp;diff=12656</id>
		<title>Services API</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Services_API&amp;diff=12656"/>
		<updated>2015-05-17T20:22:32Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Nintendo provides application developers with an API, which communicate with certain services. Services, in this sense, are system processes running in the background which wait for incoming requests. When a process wants to communicate with a service, it first needs to get a handle to the named service, and then it can communicate with the service via interprocess communication. Each service has a name up to 8 characters, for example &amp;quot;nim:u&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Handles for services are retrieved from the service manager port, &amp;quot;srv:&amp;quot;. Services are an abstraction of ports, they operate the same way except regular ports can have their handles retrieved directly from a SVC.&lt;br /&gt;
&lt;br /&gt;
For a description of how commands and arguments are passed to services, see [[IPC Command Structure]].&lt;br /&gt;
&lt;br /&gt;
List of services:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Old3ds&lt;br /&gt;
!  Services&lt;br /&gt;
!  Service names&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;200&amp;quot; |  Notes&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Filesystem services‎]]&lt;br /&gt;
| fs:USER, fs:LDR, fs:REG&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Process Services‎]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[PXI Services‎]]&lt;br /&gt;
| PxiFS0, PxiFS1, PxiFSB, PxiFSR, PxiPM, pxi:am9, pxi:dev, pxi:mc, pxi:ps9&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Application Manager Services]]&lt;br /&gt;
| am:app, am:net, am:u, am:sys, am:pipe&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Process Manager Services]]&lt;br /&gt;
| pm:app, pm:dbg&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[NIM Services]]&lt;br /&gt;
| nim:aoc, nim:ndm, nim:s, nim:u&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Config Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[NS|NS and APT Services]]&lt;br /&gt;
| ns:s, ns:p, ns:c, APT:A, APT:S, APT:U&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[RO Services]]&lt;br /&gt;
| ldr:ro&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[NDM Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[CSND Services]]&lt;br /&gt;
| csnd:SND&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Camera Services]]&lt;br /&gt;
| cam:u, y2r:u, cam:s, cam:c, cam:q (New3DS only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Codec Services]]&lt;br /&gt;
| cdc:HID, cdc:MIC, cdc:CSN, cdc:DSP, cdc:LGY, cdc:CHK&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[DSP Services]]&lt;br /&gt;
| dsp::DSP&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[GSP Services]]&lt;br /&gt;
| gsp::Lcd, gsp::Gpu&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[IR Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[I2C Services]]&lt;br /&gt;
| i2c::MCU, i2c::CAM, i2c::LCD, i2c::DEB, i2c::HID, i2c::IR, i2c::EEP&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[GPIO Services]]&lt;br /&gt;
| gpio:CDC, gpio:MCU, gpio:HID, gpio:NWM, gpio:IR&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[HID Services]]&lt;br /&gt;
| hid:NFC, hid:QTM, hid:SPVR, hid:USER &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[PTM Services]]&lt;br /&gt;
| ptm:gets, ptm:play, ptm:s, ptm:sets, ptm:sysm, ptm:u&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[NWM Services]]&lt;br /&gt;
| nwm::UDS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[HTTP Services]]&lt;br /&gt;
| http:C&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[SSL Services]]&lt;br /&gt;
| ssl:C&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Socket Services]]&lt;br /&gt;
| soc:P, soc:U&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[AC Services]]&lt;br /&gt;
| ac:i, ac:u&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Friend Services]]&lt;br /&gt;
| frd:a, frd:u&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[News Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[PDN Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[SPI Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Loader Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[MCU Services]]&lt;br /&gt;
| mcu::CAM, mcu::GPU, mcu::HID, mcu::RTC, mcu::SND, mcu::NWM, mcu::HWC, mcu::PLS, mcu::CDC&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[MIC Services]]&lt;br /&gt;
| mic:u&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: red&amp;quot; | No&lt;br /&gt;
| [[NFC Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: red&amp;quot; | No&lt;br /&gt;
| [[MVD Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: red&amp;quot; | No&lt;br /&gt;
| [[QTM Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
List of PXI services:&lt;br /&gt;
* [[Filesystem services PXI]]&lt;br /&gt;
* [[Process Services PXI]]&lt;br /&gt;
* [[Application Manager Services PXI]]&lt;br /&gt;
* [[Process Manager Services PXI]]&lt;br /&gt;
* [[Development Services PXI]]&lt;br /&gt;
* [[Gamecard Services PXI]]&lt;br /&gt;
* [[Legacy FIRM PXI]] (TWL_FIRM/AGB_FIRM)&lt;br /&gt;
&lt;br /&gt;
List of ports:&lt;br /&gt;
* [[ErrDisp]]&lt;br /&gt;
* [[Services]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See [[Error codes]].&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Services_API&amp;diff=12655</id>
		<title>Services API</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Services_API&amp;diff=12655"/>
		<updated>2015-05-17T20:18:26Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Nintendo provides application developers with an API, which communicate with certain services. Services, in this sense, are system processes running in the background which wait for incoming requests. When a process wants to communicate with a service, it first needs to get a handle to the named service, and then it can communicate with the service via interprocess communication. Each service has a name up to 8 characters, for example &amp;quot;nim:u&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Handles for services are retrieved from the service manager port, &amp;quot;srv:&amp;quot;. Services are an abstraction of ports, they operate the same way except regular ports can have their handles retrieved directly from a SVC.&lt;br /&gt;
&lt;br /&gt;
For a description of how commands and arguments are passed to services, see [[IPC Command Structure]].&lt;br /&gt;
&lt;br /&gt;
List of services:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Old3ds&lt;br /&gt;
!  Services&lt;br /&gt;
!  Service names&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;200&amp;quot; |  Notes&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Filesystem services‎]]&lt;br /&gt;
| fs:USER, fs:LDR, fs:REG&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Process Services‎]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[PXI Services‎]]&lt;br /&gt;
| PxiFS0, PxiFS1, PxiFSB, PxiFSR, PxiPM, pxi:am9, pxi:dev, pxi:mc, pxi:ps9&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Application Manager Services]]&lt;br /&gt;
| am:app, am:net, am:u, am:sys, am:pipe&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Process Manager Services]]&lt;br /&gt;
| pm:app, pm:dbg&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[NIM Services]]&lt;br /&gt;
| nim:aoc, nim:ndm, nim:s, nim:u&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Config Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[NS|NS and APT Services]]&lt;br /&gt;
| ns:s, ns:p, ns:c, APT:A, APT:S, APT:U&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[RO Services]]&lt;br /&gt;
| ldr:ro&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[NDM Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[CSND Services]]&lt;br /&gt;
| csnd:SND&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Camera Services]]&lt;br /&gt;
| cam:u, y2r:u, cam:s, cam:c, cam:q (New3DS only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Codec Services]]&lt;br /&gt;
| cdc:HID, cdc:MIC, cdc:CSN, cdc:DSP, cdc:LGY, cdc:CHK&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[DSP Services]]&lt;br /&gt;
| dsp:DSP&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[GSP Services]]&lt;br /&gt;
| gsp::Lcd, gsp::Gpu&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[IR Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[I2C Services]]&lt;br /&gt;
| i2c::MCU, i2c::CAM, i2c::LCD, i2c::DEB, i2c::HID, i2c::IR, i2c::EEP&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[GPIO Services]]&lt;br /&gt;
| gpio:CDC, gpio:MCU, gpio:HID, gpio:NWM, gpio:IR&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[HID Services]]&lt;br /&gt;
| hid:NFC, hid:QTM, hid:SPVR, hid:USER &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[PTM Services]]&lt;br /&gt;
| ptm:gets, ptm:play, ptm:s, ptm:sets, ptm:sysm, ptm:u&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[NWM Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[HTTP Services]]&lt;br /&gt;
| http:C&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[SSL Services]]&lt;br /&gt;
| ssl:C&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Socket Services]]&lt;br /&gt;
| soc:P, soc:U&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[AC Services]]&lt;br /&gt;
| ac:i, ac:u&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Friend Services]]&lt;br /&gt;
| frd:a, frd:u&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[News Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[PDN Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[SPI Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Loader Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[MCU Services]]&lt;br /&gt;
| mcu::CAM, mcu::GPU, mcu::HID, mcu::RTC, mcu::SND, mcu::NWM, mcu::HWC, mcu::PLS, mcu::CDC&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[MIC Services]]&lt;br /&gt;
| mic:u&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: red&amp;quot; | No&lt;br /&gt;
| [[NFC Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: red&amp;quot; | No&lt;br /&gt;
| [[MVD Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: red&amp;quot; | No&lt;br /&gt;
| [[QTM Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
List of PXI services:&lt;br /&gt;
* [[Filesystem services PXI]]&lt;br /&gt;
* [[Process Services PXI]]&lt;br /&gt;
* [[Application Manager Services PXI]]&lt;br /&gt;
* [[Process Manager Services PXI]]&lt;br /&gt;
* [[Development Services PXI]]&lt;br /&gt;
* [[Gamecard Services PXI]]&lt;br /&gt;
* [[Legacy FIRM PXI]] (TWL_FIRM/AGB_FIRM)&lt;br /&gt;
&lt;br /&gt;
List of ports:&lt;br /&gt;
* [[ErrDisp]]&lt;br /&gt;
* [[Services]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See [[Error codes]].&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Services_API&amp;diff=12654</id>
		<title>Services API</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Services_API&amp;diff=12654"/>
		<updated>2015-05-17T20:13:27Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Nintendo provides application developers with an API, which communicate with certain services. Services, in this sense, are system processes running in the background which wait for incoming requests. When a process wants to communicate with a service, it first needs to get a handle to the named service, and then it can communicate with the service via interprocess communication. Each service has a name up to 8 characters, for example &amp;quot;nim:u&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Handles for services are retrieved from the service manager port, &amp;quot;srv:&amp;quot;. Services are an abstraction of ports, they operate the same way except regular ports can have their handles retrieved directly from a SVC.&lt;br /&gt;
&lt;br /&gt;
For a description of how commands and arguments are passed to services, see [[IPC Command Structure]].&lt;br /&gt;
&lt;br /&gt;
List of services:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Old3ds&lt;br /&gt;
!  Services&lt;br /&gt;
!  Service names&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;200&amp;quot; |  Notes&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Filesystem services‎]]&lt;br /&gt;
| fs:USER, fs:LDR, fs:REG&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Process Services‎]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[PXI Services‎]]&lt;br /&gt;
| PxiFS0, PxiFS1, PxiFSB, PxiFSR, PxiPM, pxi:am9, pxi:dev, pxi:mc, pxi:ps9&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Application Manager Services]]&lt;br /&gt;
| am:app, am:net, am:u, am:sys, am:pipe&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Process Manager Services]]&lt;br /&gt;
| pm:app, pm:dbg&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[NIM Services]]&lt;br /&gt;
| nim:aoc, nim:ndm, nim:s, nim:u&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Config Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[NS|NS and APT Services]]&lt;br /&gt;
| ns:s, ns:p, ns:c, APT:A, APT:S, APT:U&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[RO Services]]&lt;br /&gt;
| ldr:ro&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[NDM Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[CSND Services]]&lt;br /&gt;
| csnd:SND&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Camera Services]]&lt;br /&gt;
| cam:u, y2r:u, cam:s, cam:c, cam:q (New3DS only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Codec Services]]&lt;br /&gt;
| cdc:HID, cdc:MIC, cdc:CSN, cdc:DSP, cdc:LGY, cdc:CHK&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[DSP Services]]&lt;br /&gt;
| dsp:DSP&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[GSP Services]]&lt;br /&gt;
| gsp::Lcd, gsp::Gpu&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[IR Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[I2C Services]]&lt;br /&gt;
| i2c::MCU, i2c::CAM, i2c::LCD, i2c::DEB, i2c::HID, i2c::IR, i2c::EEP&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[GPIO Services]]&lt;br /&gt;
| gpio:CDC, gpio:MCU, gpio:HID, gpio:NWM, gpio:IR&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[HID Services]]&lt;br /&gt;
| hid:NFC, hid:QTM, hid:USER, hid:SPVR&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[PTM Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[NWM Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[HTTP Services]]&lt;br /&gt;
| http:C&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[SSL Services]]&lt;br /&gt;
| ssl:C&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Socket Services]]&lt;br /&gt;
| soc:P, soc:U&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[AC Services]]&lt;br /&gt;
| ac:i, ac:u&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Friend Services]]&lt;br /&gt;
| frd:a, frd:u&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[News Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[PDN Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[SPI Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Loader Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[MCU Services]]&lt;br /&gt;
| mcu::CAM, mcu::GPU, mcu::HID, mcu::RTC, mcu::SND, mcu::NWM, mcu::HWC, mcu::PLS, mcu::CDC&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[MIC Services]]&lt;br /&gt;
| mic:u&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: red&amp;quot; | No&lt;br /&gt;
| [[NFC Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: red&amp;quot; | No&lt;br /&gt;
| [[MVD Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: red&amp;quot; | No&lt;br /&gt;
| [[QTM Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
List of PXI services:&lt;br /&gt;
* [[Filesystem services PXI]]&lt;br /&gt;
* [[Process Services PXI]]&lt;br /&gt;
* [[Application Manager Services PXI]]&lt;br /&gt;
* [[Process Manager Services PXI]]&lt;br /&gt;
* [[Development Services PXI]]&lt;br /&gt;
* [[Gamecard Services PXI]]&lt;br /&gt;
* [[Legacy FIRM PXI]] (TWL_FIRM/AGB_FIRM)&lt;br /&gt;
&lt;br /&gt;
List of ports:&lt;br /&gt;
* [[ErrDisp]]&lt;br /&gt;
* [[Services]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See [[Error codes]].&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Services_API&amp;diff=12653</id>
		<title>Services API</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Services_API&amp;diff=12653"/>
		<updated>2015-05-17T20:05:10Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Nintendo provides application developers with an API, which communicate with certain services. Services, in this sense, are system processes running in the background which wait for incoming requests. When a process wants to communicate with a service, it first needs to get a handle to the named service, and then it can communicate with the service via interprocess communication. Each service has a name up to 8 characters, for example &amp;quot;nim:u&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Handles for services are retrieved from the service manager port, &amp;quot;srv:&amp;quot;. Services are an abstraction of ports, they operate the same way except regular ports can have their handles retrieved directly from a SVC.&lt;br /&gt;
&lt;br /&gt;
For a description of how commands and arguments are passed to services, see [[IPC Command Structure]].&lt;br /&gt;
&lt;br /&gt;
List of services:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Old3ds&lt;br /&gt;
!  Services&lt;br /&gt;
!  Service names&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;200&amp;quot; |  Notes&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Filesystem services‎]]&lt;br /&gt;
| fs:USER, fs:LDR, fs:REG&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Process Services‎]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[PXI Services‎]]&lt;br /&gt;
| PxiFS0, PxiFS1, PxiFSB, PxiFSR, PxiPM, pxi:am9, pxi:dev, pxi:mc, pxi:ps9&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Application Manager Services]]&lt;br /&gt;
| am:app, am:net, am:u, am:sys, am:pipe&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Process Manager Services]]&lt;br /&gt;
| pm:app, pm:dbg&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[NIM Services]]&lt;br /&gt;
| nim:aoc, nim:ndm, nim:s, nim:u&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Config Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[NS|NS and APT Services]]&lt;br /&gt;
| ns:s, ns:p, ns:c, APT:A, APT:S, APT:U&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[RO Services]]&lt;br /&gt;
| ldr:ro&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[NDM Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[CSND Services]]&lt;br /&gt;
| csnd:SND&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Camera Services]]&lt;br /&gt;
| cam:u, y2r:u, cam:s, cam:c, cam:q (New3DS only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Codec Services]]&lt;br /&gt;
| cdc:HID, cdc:MIC, cdc:CSN, cdc:DSP, cdc:LGY, cdc:CHK&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[DSP Services]]&lt;br /&gt;
| dsp:DSP&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[GSP Services]]&lt;br /&gt;
| gsp::Lcd, gsp::Gpu&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[IR Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[I2C Services]]&lt;br /&gt;
| i2c::MCU, i2c::CAM, i2c::LCD, i2c::DEB, i2c::HID, i2c::IR, i2c::EEP&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[GPIO Services]]&lt;br /&gt;
| gpio:CDC, gpio:MCU, gpio:HID, gpio:NWM, gpio:IR&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[HID Services]]&lt;br /&gt;
| hid:NFC, hid:QTM, hid:USER, hid:SPVR&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[PTM Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[NWM Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[HTTP Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[SSL Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Socket Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[AC Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Friend Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[News Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[PDN Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[SPI Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Loader Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[MCU Services]]&lt;br /&gt;
| mcu::CAM, mcu::GPU, mcu::HID, mcu::RTC, mcu::SND, mcu::NWM, mcu::HWC, mcu::PLS, mcu::CDC&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[MIC Services]]&lt;br /&gt;
| mic:u&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: red&amp;quot; | No&lt;br /&gt;
| [[NFC Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: red&amp;quot; | No&lt;br /&gt;
| [[MVD Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: red&amp;quot; | No&lt;br /&gt;
| [[QTM Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
List of PXI services:&lt;br /&gt;
* [[Filesystem services PXI]]&lt;br /&gt;
* [[Process Services PXI]]&lt;br /&gt;
* [[Application Manager Services PXI]]&lt;br /&gt;
* [[Process Manager Services PXI]]&lt;br /&gt;
* [[Development Services PXI]]&lt;br /&gt;
* [[Gamecard Services PXI]]&lt;br /&gt;
* [[Legacy FIRM PXI]] (TWL_FIRM/AGB_FIRM)&lt;br /&gt;
&lt;br /&gt;
List of ports:&lt;br /&gt;
* [[ErrDisp]]&lt;br /&gt;
* [[Services]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See [[Error codes]].&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Config_Savegame&amp;diff=12652</id>
		<title>Config Savegame</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Config_Savegame&amp;diff=12652"/>
		<updated>2015-05-17T19:18:55Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the format of the [[Config_Services|Cfg]] [[System_SaveData|NAND]] savegame. These blocks can be accessed with the Cfg service commands.&lt;br /&gt;
&lt;br /&gt;
==Structure of save-file &amp;quot;/config&amp;quot;==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x2&lt;br /&gt;
| Total entries&lt;br /&gt;
|-&lt;br /&gt;
| 0x2&lt;br /&gt;
| 0x2&lt;br /&gt;
| Data entries offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4558&lt;br /&gt;
| Block entries&lt;br /&gt;
|-&lt;br /&gt;
| 0x455C&lt;br /&gt;
| &lt;br /&gt;
| Data for the entries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The filesize for this /config file is 0x8000-bytes.&lt;br /&gt;
&lt;br /&gt;
==Configuration block entry ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| BlkID&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| Offset to the data for this block when size is &amp;gt;4, otherwise this word is the data for this block&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x2&lt;br /&gt;
| Size&lt;br /&gt;
|-&lt;br /&gt;
| 0xA&lt;br /&gt;
| 0x2&lt;br /&gt;
| Flags&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Configuration blocks==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  BlkID&lt;br /&gt;
!  Size&lt;br /&gt;
!  Flags&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040000&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x8&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040001&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 0x8&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040002&lt;br /&gt;
| 0x12&lt;br /&gt;
| 0x8&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040003&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x8&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050001&lt;br /&gt;
| 0x2&lt;br /&gt;
| 0x8&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050002&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x8&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050003&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x8&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050005&lt;br /&gt;
| 0x20&lt;br /&gt;
|?&lt;br /&gt;
| Stereo camera settings?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050006&lt;br /&gt;
| 0x2&lt;br /&gt;
| 0x8&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00070001&lt;br /&gt;
| 0x1&lt;br /&gt;
|?&lt;br /&gt;
| Sound output mode?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080000&lt;br /&gt;
| 0xC00&lt;br /&gt;
| 0x2?&lt;br /&gt;
| WiFi configuration slot 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080001&lt;br /&gt;
| 0xC00&lt;br /&gt;
| 0x2?&lt;br /&gt;
| WiFi configuration slot 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080002&lt;br /&gt;
| 0xC00&lt;br /&gt;
| 0x2?&lt;br /&gt;
| WiFi configuration slot 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090000&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x2?&lt;br /&gt;
| This contains a u64 ID, used by processes using [[NWMUDS:Initialize]]. The first word is the same as [[CfgS:GetLocalFriendCodeSeed|LocalFriendCodeSeed]], while the latter is a separate random word&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090001&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0xE&lt;br /&gt;
| This console-unique u64 used by [[Cfg:GenHashConsoleUnique|GenHashConsoleUnique]] is generated with the LocalFriendCodeSeed and with random data&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A0000&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 0xE&lt;br /&gt;
| Username&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A0001&lt;br /&gt;
| 0x2&lt;br /&gt;
| 0x2&lt;br /&gt;
| ??&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A0002&lt;br /&gt;
| 0x1&lt;br /&gt;
| 0xA&lt;br /&gt;
| Language&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B0000&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x8&lt;br /&gt;
| CountryInfo&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B0001&lt;br /&gt;
| 0x800&lt;br /&gt;
| 0x2?&lt;br /&gt;
| Country name in UTF-16, every 0x80-bytes is an entry for each language(not all entries are set)&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B0002&lt;br /&gt;
| 0x800&lt;br /&gt;
| 0x2?&lt;br /&gt;
| State name in UTF-16, every 0x80-bytes is an entry for each language&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0000&lt;br /&gt;
| 0xC0&lt;br /&gt;
|?&lt;br /&gt;
| Restricted photo exchange data, and other info&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0001&lt;br /&gt;
| 0x14&lt;br /&gt;
|?&lt;br /&gt;
| Same as above?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D0000&lt;br /&gt;
| 0x4&lt;br /&gt;
|?&lt;br /&gt;
| u16 at offset 0x0: [[SMDH#EULA_Version|EULA Version]] which was agreed to.&lt;br /&gt;
|-&lt;br /&gt;
| 0x000F0000&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x8?&lt;br /&gt;
| Unknown, used by [[NS]] on dev-units for [[SVC|svcKernelSetState]], where Type is 6. During NS startup on debug-units, NS compares the u32 from +8 in this config-block with the [[Configuration_Memory#APPMEMTYPE|APPMEMTYPE]]. When those don&#039;t match NS starts a FIRM-launch (with the same FIRM titleID as the currently running one) to boot into a FIRM with the APPMEMTYPE value from this config-block&lt;br /&gt;
|-&lt;br /&gt;
| 0x000F0004&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x8?&lt;br /&gt;
| The first u8 is the System-Model [[Cfg:GetSystemModel|value]], the last 3-bytes are unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x00110000&lt;br /&gt;
| 0x4&lt;br /&gt;
|?&lt;br /&gt;
| The low u16 indicates whether the system setup is required, such as when the system is booted for the first time or after doing a [[System Settings|System Format]]: 0 = setup required, non-zero = no setup required&lt;br /&gt;
|-&lt;br /&gt;
| 0x00110001&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0xA?&lt;br /&gt;
| TitleID of the menu to launch, used by [[NS]] on dev units (this block can be edited on dev units with [[3DS Development Unit Software#Config|Config]])&lt;br /&gt;
|-&lt;br /&gt;
| 0x00120000&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x8&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00130000&lt;br /&gt;
| 0x4&lt;br /&gt;
|?&lt;br /&gt;
| If response is 0x100 then debug mode is enabled.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00160000&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x8?&lt;br /&gt;
| Unknown, first byte is used by config service-cmd [[Config_Services|0x00070040]]. (Unknown whether the last 3-bytes are used)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The developer unit TID block only exists on developer units.&lt;br /&gt;
&lt;br /&gt;
===Languages===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  ID&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| JP&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| EN&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| FR&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| DE&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| IT&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| ES&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| ZH&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| KO&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| NL&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| PT&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| RU&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| TW&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===CountryInfo===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Byte&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Country code, same as DSi/Wii country codes. Value 0xFF is invalid.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===0x000A0000 Block===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Byte&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0-0x13&lt;br /&gt;
| UTF-16 username, with no NULL-terminator.&lt;br /&gt;
|-&lt;br /&gt;
| 0x14-17&lt;br /&gt;
| Usually zero?&lt;br /&gt;
|-&lt;br /&gt;
| 0x18-0x1B&lt;br /&gt;
| u32 NGWord version the username was last checked with. If this value is less than the u32 stored in the NGWord CFA &amp;quot;romfs:/version.dat&amp;quot;, the system then checks the username string with the bad-word list CFA again, then updates this field with the value from the CFA&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Config_Savegame&amp;diff=12565</id>
		<title>Config Savegame</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Config_Savegame&amp;diff=12565"/>
		<updated>2015-05-06T21:11:14Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the format of the [[Config_Services|Cfg]] [[System_SaveData|NAND]] savegame. These blocks can be accessed with the Cfg service commands.&lt;br /&gt;
&lt;br /&gt;
==Structure of save-file &amp;quot;/config&amp;quot;==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x2&lt;br /&gt;
| Total entries&lt;br /&gt;
|-&lt;br /&gt;
| 0x2&lt;br /&gt;
| 0x2&lt;br /&gt;
| Data entries offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4558&lt;br /&gt;
| Block entries&lt;br /&gt;
|-&lt;br /&gt;
| 0x455C&lt;br /&gt;
| &lt;br /&gt;
| Data for the entries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The filesize for this /config file is 0x8000-bytes.&lt;br /&gt;
&lt;br /&gt;
==Configuration block entry ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| BlkID&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| Offset to the data for this block when size is &amp;gt;4, otherwise this word is the data for this block&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x2&lt;br /&gt;
| Size&lt;br /&gt;
|-&lt;br /&gt;
| 0xA&lt;br /&gt;
| 0x2&lt;br /&gt;
| Flags&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Configuration blocks==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  BlkID&lt;br /&gt;
!  Size&lt;br /&gt;
!  Flags&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050001&lt;br /&gt;
| 0x2&lt;br /&gt;
| 0x8&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050002&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x8&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050003&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x8&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050005&lt;br /&gt;
| 0x20&lt;br /&gt;
|?&lt;br /&gt;
| Stereo camera settings?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050006&lt;br /&gt;
| 0x2&lt;br /&gt;
| 0x8&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00070001&lt;br /&gt;
| 0x1&lt;br /&gt;
|?&lt;br /&gt;
| Sound output mode?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080000&lt;br /&gt;
| 0xC00&lt;br /&gt;
| 0x2?&lt;br /&gt;
| WiFi configuration slot 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080001&lt;br /&gt;
| 0xC00&lt;br /&gt;
| 0x2?&lt;br /&gt;
| WiFi configuration slot 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080002&lt;br /&gt;
| 0xC00&lt;br /&gt;
| 0x2?&lt;br /&gt;
| WiFi configuration slot 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090000&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x2?&lt;br /&gt;
| This contains a u64 ID, used by processes using [[NWMUDS:Initialize]]. The first word is the same as [[CfgS:GetLocalFriendCodeSeed|LocalFriendCodeSeed]], while the latter is a separate random word&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090001&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0xE&lt;br /&gt;
| This console-unique u64 used by [[Cfg:GenHashConsoleUnique|GenHashConsoleUnique]] is generated with the LocalFriendCodeSeed and with random data&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A0000&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 0xE&lt;br /&gt;
| Username&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A0001&lt;br /&gt;
| 0x2&lt;br /&gt;
| 0x2&lt;br /&gt;
| ??&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A0002&lt;br /&gt;
| 0x1&lt;br /&gt;
| 0xA&lt;br /&gt;
| Language&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B0000&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x8&lt;br /&gt;
| CountryInfo&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B0001&lt;br /&gt;
| 0x800&lt;br /&gt;
| 0x2?&lt;br /&gt;
| Country name in UTF-16, every 0x80-bytes is an entry for each language(not all entries are set)&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B0002&lt;br /&gt;
| 0x800&lt;br /&gt;
| 0x2?&lt;br /&gt;
| State name in UTF-16, every 0x80-bytes is an entry for each language&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0000&lt;br /&gt;
| 0xC0&lt;br /&gt;
|?&lt;br /&gt;
| Restricted photo exchange data, and other info&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0001&lt;br /&gt;
| 0x14&lt;br /&gt;
|?&lt;br /&gt;
| Same as above?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D0000&lt;br /&gt;
| 0x4&lt;br /&gt;
|?&lt;br /&gt;
| u16 at offset 0x0: [[SMDH#EULA_Version|EULA Version]] which was agreed to.&lt;br /&gt;
|-&lt;br /&gt;
| 0x000F0000&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x8?&lt;br /&gt;
| Unknown, used by [[NS]] on dev-units for [[SVC|svcKernelSetState]], where Type is 6. During NS startup on debug-units, NS compares the u32 from +8 in this config-block with the [[Configuration_Memory#APPMEMTYPE|APPMEMTYPE]]. When those don&#039;t match NS starts a FIRM-launch (with the same FIRM titleID as the currently running one) to boot into a FIRM with the APPMEMTYPE value from this config-block&lt;br /&gt;
|-&lt;br /&gt;
| 0x000F0004&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x8?&lt;br /&gt;
| The first u8 is the System-Model [[Cfg:GetSystemModel|value]], the last 3-bytes are unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x00110000&lt;br /&gt;
| 0x4&lt;br /&gt;
|?&lt;br /&gt;
| The low u16 indicates whether the system setup is required, such as when the system is booted for the first time or after doing a [[System Settings|System Format]]: 0 = setup required, non-zero = no setup required&lt;br /&gt;
|-&lt;br /&gt;
| 0x00110001&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0xA?&lt;br /&gt;
| TitleID of the menu to launch, used by [[NS]] on dev units (this block can be edited on dev units with [[3DS Development Unit Software#Config|Config]])&lt;br /&gt;
|-&lt;br /&gt;
| 0x00130000&lt;br /&gt;
| 0x4&lt;br /&gt;
|?&lt;br /&gt;
| If response is 0x100 then debug mode is enabled.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00160000&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x8?&lt;br /&gt;
| Unknown, first byte is used by config service-cmd [[Config_Services|0x00070040]]. (Unknown whether the last 3-bytes are used)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The developer unit TID block only exists on developer units.&lt;br /&gt;
&lt;br /&gt;
===Languages===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  ID&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| JP&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| EN&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| FR&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| DE&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| IT&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| ES&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| ZH&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| KO&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| NL&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| PT&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| RU&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| TW&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===CountryInfo===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Byte&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Country code, same as DSi/Wii country codes. Value 0xFF is invalid.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===0x000A0000 Block===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Byte&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0-0x13&lt;br /&gt;
| UTF-16 username, with no NULL-terminator.&lt;br /&gt;
|-&lt;br /&gt;
| 0x14-17&lt;br /&gt;
| Usually zero?&lt;br /&gt;
|-&lt;br /&gt;
| 0x18-0x1B&lt;br /&gt;
| u32 NGWord version the username was last checked with. If this value is less than the u32 stored in the NGWord CFA &amp;quot;romfs:/version.dat&amp;quot;, the system then checks the username string with the bad-word list CFA again, then updates this field with the value from the CFA&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Config_Services&amp;diff=12529</id>
		<title>Config Services</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Config_Services&amp;diff=12529"/>
		<updated>2015-04-25T21:55:47Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: /* Config service &amp;quot;cfg:s&amp;quot; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Services]]&lt;br /&gt;
&lt;br /&gt;
= Config services =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Available since system version&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010082&lt;br /&gt;
| &lt;br /&gt;
| [[CfgS:GetConfigInfoBlk2|GetConfigInfoBlk2]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020000&lt;br /&gt;
| &lt;br /&gt;
| [[Cfg:SecureInfoGetRegion|SecureInfoGetRegion]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00030040&lt;br /&gt;
| &lt;br /&gt;
| [[Cfg:GenHashConsoleUnique|GenHashConsoleUnique]]/GetTransferableId&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040000&lt;br /&gt;
| [[3.0.0-5]]&lt;br /&gt;
| [[Cfg:GetRegionCanadaUSA|GetRegionCanadaUSA]]/IsCoppacsSupported&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050000&lt;br /&gt;
| [[5.0.0-11]]&lt;br /&gt;
| [[Cfg:GetSystemModel|GetSystemModel]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00060000&lt;br /&gt;
| [[6.0.0-11]]&lt;br /&gt;
| [[Cfg:GetModelNintendo2DS|GetModelNintendo2DS]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00070040&lt;br /&gt;
| [[7.0.0-13]]&lt;br /&gt;
| (u8 val) This writes the input u8 to the first byte in the config-block for blkID [[Config_Savegame|0x00160000]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080080&lt;br /&gt;
| [[7.0.0-13]]&lt;br /&gt;
| (u32 value, u8 type) This goes through a table containing 5 entries, each entry is 2-words. Type0: compare entry-word0 with input value, on match write entry-word1 to cmdreply+8 output. Type1: compare entry-word1 with input value, on match write entry-word0 to output.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090040&lt;br /&gt;
| [[7.0.0-13]]&lt;br /&gt;
| [[Cfg:GetCountryCodeString|GetCountryCodeString]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A0040&lt;br /&gt;
| [[7.0.0-13]]&lt;br /&gt;
| [[Cfg:GetCountryCodeID|GetCountryCodeID]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B0000&lt;br /&gt;
| [[9.3.0-21|9.3.0-X]]&lt;br /&gt;
| Unknown. Starting with [[9.6.0-24|9.6.0-X]] this is hard-coded to write u8 value 0x1 to cmdreply[2](originally this checked various state/config for determining the output value).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Config service &amp;quot;cfg:s&amp;quot; =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Available since system version&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050000&lt;br /&gt;
| &lt;br /&gt;
| Same as cfg:u 0x00050000 cmd?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04010082&lt;br /&gt;
| &lt;br /&gt;
| [[CfgS:GetConfigInfoBlk8|GetConfigInfoBlk8]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04020082&lt;br /&gt;
| &lt;br /&gt;
| [[CfgS:SetConfigInfoBlk4|SetConfigInfoBlk4]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04030000&lt;br /&gt;
| &lt;br /&gt;
| [[Cfg:UpdateConfigNANDSavegame|UpdateConfigNANDSavegame]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04040042&lt;br /&gt;
| &lt;br /&gt;
| [[Cfg:GetLocalFriendCodeSeedData|GetLocalFriendCodeSeedData]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04050000&lt;br /&gt;
| &lt;br /&gt;
| [[CfgS:GetLocalFriendCodeSeed|GetLocalFriendCodeSeed]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04060000&lt;br /&gt;
| &lt;br /&gt;
| [[Cfg:SecureInfoGetRegion|SecureInfoGetRegion]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04070000&lt;br /&gt;
| &lt;br /&gt;
| [[CfgS:SecureInfoGetByte101|SecureInfoGetByte101]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04080042&lt;br /&gt;
| &lt;br /&gt;
| [[CfgS:SecureInfoGetSerialNo|SecureInfoGetSerialNo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04090000&lt;br /&gt;
| &lt;br /&gt;
| [[Cfg:UpdateConfigBlk00040003|UpdateConfigBlk00040003]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040A0000&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x040B0000&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x040C0000&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x040D0040&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x040E0000&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x040F0000&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
CfgS command 0x04060000(SecureInfoGetRegion) is used by NIM module to determine the SOAP RegionId, when sending SOAP requests. See [[Nandrw/sys/SecureInfo_A|here]].&lt;br /&gt;
&lt;br /&gt;
= Config service &amp;quot;cfg:i&amp;quot; =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Available since system version&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x04010082&lt;br /&gt;
| &lt;br /&gt;
| [[CfgS:GetConfigInfoBlk8|GetConfigInfoBlk8]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04020082&lt;br /&gt;
| &lt;br /&gt;
| [[CfgS:SetConfigInfoBlk4|SetConfigInfoBlk4]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04030000&lt;br /&gt;
| &lt;br /&gt;
| [[Cfg:UpdateConfigNANDSavegame|UpdateConfigNANDSavegame]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04040042&lt;br /&gt;
| &lt;br /&gt;
| [[Cfg:GetLocalFriendCodeSeedData|GetLocalFriendCodeSeedData]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04050000&lt;br /&gt;
| &lt;br /&gt;
| [[CfgS:GetLocalFriendCodeSeed|GetLocalFriendCodeSeed]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04060000&lt;br /&gt;
| &lt;br /&gt;
| [[Cfg:SecureInfoGetRegion|SecureInfoGetRegion]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04070000&lt;br /&gt;
| &lt;br /&gt;
| [[CfgS:SecureInfoGetByte101|SecureInfoGetByte101]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04080042&lt;br /&gt;
| &lt;br /&gt;
| [[CfgS:SecureInfoGetSerialNo|SecureInfoGetSerialNo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04090000&lt;br /&gt;
| &lt;br /&gt;
| [[Cfg:UpdateConfigBlk00040003|UpdateConfigBlk00040003]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040A0000&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x040B0000&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x040C0000&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x040D0040&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x040E0000&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x040F0000&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x08010082&lt;br /&gt;
| &lt;br /&gt;
| [[CfgS:GetConfigInfoBlk8|GetConfigInfoBlk8]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08020082&lt;br /&gt;
| &lt;br /&gt;
| [[CfgS:SetConfigInfoBlk4|SetConfigInfoBlk4]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08030000&lt;br /&gt;
| &lt;br /&gt;
| [[Cfg:UpdateConfigNANDSavegame|UpdateConfigNANDSavegame]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x080400C2&lt;br /&gt;
| &lt;br /&gt;
| [[CfgI:CreateConfigInfoBlk|CreateConfigInfoBlk]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08050000&lt;br /&gt;
| &lt;br /&gt;
| [[CfgI:DeleteConfigNANDSavefile|DeleteConfigNANDSavefile]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08060000&lt;br /&gt;
| &lt;br /&gt;
| [[CfgI:FormatConfig|FormatConfig]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08070000&lt;br /&gt;
| &lt;br /&gt;
| This basically just returns result-code value 0x0, due to code this eventually executes being NOPed out.&lt;br /&gt;
|-&lt;br /&gt;
| 0x08080000&lt;br /&gt;
| &lt;br /&gt;
| This updates the config blocks for blkIDs 0x0 and 0x20000. In certain cases this may call the code for [[CfgI:FormatConfig|FormatConfig]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x08090000&lt;br /&gt;
| &lt;br /&gt;
| This updates the config block for blkID 0x60000.&lt;br /&gt;
|-&lt;br /&gt;
| 0x080A0000&lt;br /&gt;
| &lt;br /&gt;
| This updates the config block for blkID 0x00040001.&lt;br /&gt;
|-&lt;br /&gt;
| 0x080B0082&lt;br /&gt;
| &lt;br /&gt;
| [[CfgI:SetGetLocalFriendCodeSeedData|SetGetLocalFriendCodeSeedData]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x080C0042&lt;br /&gt;
| &lt;br /&gt;
| [[CfgI:SetLocalFriendCodeSeedSignature|SetLocalFriendCodeSeedSignature]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x080D0000&lt;br /&gt;
| &lt;br /&gt;
| [[CfgI:DeleteCreateNANDLocalFriendCodeSeed|DeleteCreateNANDLocalFriendCodeSeed]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x080E0000&lt;br /&gt;
| &lt;br /&gt;
| [[CfgI:VerifySigLocalFriendCodeSeed|VerifySigLocalFriendCodeSeed]] &lt;br /&gt;
|-&lt;br /&gt;
| 0x080F0042&lt;br /&gt;
| &lt;br /&gt;
| [[Cfg:GetLocalFriendCodeSeedData|GetLocalFriendCodeSeedData]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08100000&lt;br /&gt;
| &lt;br /&gt;
| [[CfgS:GetLocalFriendCodeSeed|GetLocalFriendCodeSeed]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08110084&lt;br /&gt;
| &lt;br /&gt;
| [[CfgI:SetSecureInfo|SetSecureInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08120000&lt;br /&gt;
| &lt;br /&gt;
| [[CfgI:DeleteCreateNANDSecureInfo|DeleteCreateNANDSecureInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08130000&lt;br /&gt;
| &lt;br /&gt;
| [[CfgI:VerifySigSecureInfo|VerifySigSecureInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08140042&lt;br /&gt;
| &lt;br /&gt;
| [[CfgI:SecureInfoGetData|SecureInfoGetData]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08150042&lt;br /&gt;
| &lt;br /&gt;
| [[CfgI:SecureInfoGetSignature|SecureInfoGetSignature]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08160000&lt;br /&gt;
| &lt;br /&gt;
| [[Cfg:SecureInfoGetRegion|SecureInfoGetRegion]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08170000&lt;br /&gt;
| &lt;br /&gt;
| [[CfgS:SecureInfoGetByte101|SecureInfoGetByte101]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08180042&lt;br /&gt;
| &lt;br /&gt;
| [[CfgS:SecureInfoGetSerialNo|SecureInfoGetSerialNo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x0819....&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x081A....&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x081B....&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x081C....&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x081D....&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x081E....&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x081F....&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0820....&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Config service &amp;quot;cfg:u&amp;quot; =&lt;br /&gt;
This only handles the commands listed under the above &amp;quot;Config services&amp;quot;, no additional commands.&lt;br /&gt;
&lt;br /&gt;
= Config NVRAM service &amp;quot;cfg:nor&amp;quot; =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010040&lt;br /&gt;
| [[CfgNor:Initialize|Initialize]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020000&lt;br /&gt;
| [[CfgNor:Shutdown|Shutdown]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050082&lt;br /&gt;
| [[CfgNor:ReadData|ReadData]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00060082&lt;br /&gt;
| [[CfgNor:WriteData|WriteData]]&lt;br /&gt;
|}&lt;br /&gt;
This is an interface for the &amp;quot;SPI::NOR&amp;quot; service, for accessing the Wifi NVRAM/SPI Flash.&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=PDN_Services&amp;diff=12528</id>
		<title>PDN Services</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=PDN_Services&amp;diff=12528"/>
		<updated>2015-04-25T21:35:34Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Services]]&lt;br /&gt;
&lt;br /&gt;
= PDN PTM Service &amp;quot;pdn:s&amp;quot; =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010000&lt;br /&gt;
| This loads the u32s from 0x1EC41000+8 and 0x1EC41000+12, then writes those to cmdreplyword[2] and cmdreplyword[3].&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020080&lt;br /&gt;
| u32 0x1EC41000+12 = cmdword[2] &amp;amp; cmdword[1]. This then writes cmdword[1] to u32 0x1EC41000+8. u32 0x1EC41000+12 = cmdword[2] &amp;amp; ~cmdword[1].&lt;br /&gt;
|-&lt;br /&gt;
| 0x00030040&lt;br /&gt;
| This writes cmdword[1] to u32 0x1EC41000+12.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= PDN DSP Service &amp;quot;pdn:d&amp;quot; =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x000100C0&lt;br /&gt;
| (u8 unk0, u8 unk1, u8 unk2) ?controls power to the DSP &amp;lt;just a guess&amp;gt;?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= PDN CODEC Service &amp;quot;pdn:i&amp;quot; =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010040&lt;br /&gt;
| This sets bit0 in u8 *(0x1EC41000+0x220) to u8 cmd+4.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020040&lt;br /&gt;
| This sets bit1 in u8 *(0x1EC41000+0x220) to u8 cmd+4.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= PDN GSP service &amp;quot;pdn:g&amp;quot; =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x000100C0&lt;br /&gt;
| (u8 value, u32 unk1, u16 unk2) ?controls power to the GPU &amp;lt;just a guess&amp;gt;? &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= PDN Camera Service &amp;quot;pdn:c&amp;quot; =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010040&lt;br /&gt;
| This sets bit0 in u8 *(0x1EC41000+0x224) to u8 cmd+4.&lt;br /&gt;
|-&lt;br /&gt;
| 0x000200000&lt;br /&gt;
| This writes u8 *(0x1EC41000+0x224) &amp;amp; 1 to u8 cmdreply+8.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=MCU_Services&amp;diff=12524</id>
		<title>MCU Services</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=MCU_Services&amp;diff=12524"/>
		<updated>2015-04-25T02:43:36Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: /* MCU GPU service &amp;quot;mcu::GPU&amp;quot; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Only one session can be open per service at a time. If a session is already open for a service, MCU module will wait for the thread handling the session to terminate(triggered by the session being closed by the user process), then it accepts the new session. The commands for each service are handled by separate threads.&lt;br /&gt;
&lt;br /&gt;
=MCU camera service &amp;quot;mcu::CAM&amp;quot;=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0001....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0002....&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=MCU GPU service &amp;quot;mcu::GPU&amp;quot;=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010000&lt;br /&gt;
| Called by 0107builder (gsp module)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0002....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0003000&lt;br /&gt;
| Called by 0107builder (gsp module)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0004....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0005....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0006....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0007....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0008....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090000&lt;br /&gt;
| Called by 0107builder (gsp module)&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A0000&lt;br /&gt;
| Called by 0107builder (gsp module)&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000E....&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=MCU HID service &amp;quot;mcu::HID&amp;quot;=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0002....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0003....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0004....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0005....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0006....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0007....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0008....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A0000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D0000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000E0000&lt;br /&gt;
| [[MCUHID:GetSoundVolume|GetSoundVolume]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=MCU service &amp;quot;mcu::RTC&amp;quot;=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0001....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0002....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0003....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0004....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0005....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0006....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0007....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0008....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0009....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000E....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000F....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0010....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0011....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0012....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0013....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0014....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0015....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0016....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0017....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0018....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0019....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x001A....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x001B....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x001C....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x001D....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x001E....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x001F0040&lt;br /&gt;
| SetPedometerRecordingMode&lt;br /&gt;
|-&lt;br /&gt;
| 0x00200000&lt;br /&gt;
| GetPedometerState&lt;br /&gt;
|-&lt;br /&gt;
| 0x0021....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0022....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0023....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0024....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0025....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0026....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0027....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0028....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0029....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x002A0000&lt;br /&gt;
| GetShellState&lt;br /&gt;
|-&lt;br /&gt;
| 0x002B0000&lt;br /&gt;
| GetAdapterState&lt;br /&gt;
|-&lt;br /&gt;
| 0x002C0000&lt;br /&gt;
| GetBatteryChargeState&lt;br /&gt;
|-&lt;br /&gt;
| 0x002D0000&lt;br /&gt;
| [[MCURTC:GetBatteryLevel|GetBatteryLevel]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002E....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x002F....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0030....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0031....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0032....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0033....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0034....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0035....&lt;br /&gt;
| Writes 0x10 to i2c MCU device, reg 0x20&lt;br /&gt;
|-&lt;br /&gt;
| 0x0036....&lt;br /&gt;
| Writes char at cmdbuf[1] to i2c MCU device, reg 0x24&lt;br /&gt;
|-&lt;br /&gt;
| 0x0037....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0038....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0039....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x003A....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x003B0640&lt;br /&gt;
| [[MCURTC:SetInfoLEDPattern|SetInfoLEDPattern]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x003C0040&lt;br /&gt;
| [[MCURTC:SetInfoLEDPatternHeader|SetInfoLEDPatternHeader]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x003D0000&lt;br /&gt;
| [[MCURTC:GetInfoLEDStatus|GetInfoLEDStatus]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x003E....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x003F....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0040....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0041....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00420040&lt;br /&gt;
| [[MCURTC:SetBatteryEmptyLEDPattern|SetBatteryEmptyLEDPattern]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x0043....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0044....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0045....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0046....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0047....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0048....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0049....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x004A....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x004B....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x004C....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x004D....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x004E....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x004F....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0050....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0051....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00520000&lt;br /&gt;
| IsLegacyPoweroff&lt;br /&gt;
|-&lt;br /&gt;
| 0x0053....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0054....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0055....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0056....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0057....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0058....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0059....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x005A....&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that using invalid input with these InfoLED/SetBatteryEmptyLEDPattern commands(especially SetInfoLEDPattern) can cause the system to be bricked(however the boot failure may not begin immediately after using the invalid parameters). For the bitmasks controlling these LEDs, bit clear = LED enable, bit set = LED disable? These notification LEDs(red LED, green LED, blue LED, ...) can only be enabled/disabled, nothing more.&lt;br /&gt;
&lt;br /&gt;
=MCU sound service &amp;quot;mcu::SND&amp;quot;=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0001....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0002....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0003....&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=MCU wifi service &amp;quot;mcu::NWM&amp;quot;=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0001....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0002....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0003....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0004....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0005....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0006....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0007....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0008....&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=MCU service &amp;quot;mcu::HWC&amp;quot;=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0001....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0002....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0003....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0004....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0005....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0006....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0007....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0008....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0009....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A0640&lt;br /&gt;
| This is the same as [[MCURTC:SetInfoLEDPattern]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000E....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000F....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0010....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0011....&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=MCU service &amp;quot;mcu::PLS&amp;quot;=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0001....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0002....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0003....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0004....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0005....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0006....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0007....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0008....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0009....&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=MCU codec service &amp;quot;mcu::CDC&amp;quot;=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010000&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Config_Savegame&amp;diff=12523</id>
		<title>Config Savegame</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Config_Savegame&amp;diff=12523"/>
		<updated>2015-04-25T02:24:39Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: /* Configuration blocks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the format of the [[Config_Services|Cfg]] [[System_SaveData|NAND]] savegame. These blocks can be accessed with the Cfg service commands.&lt;br /&gt;
&lt;br /&gt;
==Structure of save-file &amp;quot;/config&amp;quot;==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x2&lt;br /&gt;
| Total entries&lt;br /&gt;
|-&lt;br /&gt;
| 0x2&lt;br /&gt;
| 0x2&lt;br /&gt;
| Data entries offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4558&lt;br /&gt;
| Block entries&lt;br /&gt;
|-&lt;br /&gt;
| 0x455C&lt;br /&gt;
| &lt;br /&gt;
| Data for the entries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The filesize for this /config file is 0x8000-bytes.&lt;br /&gt;
&lt;br /&gt;
==Configuration block entry ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| BlkID&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| Offset to the data for this block when size is &amp;gt;4, otherwise this word is the data for this block&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x2&lt;br /&gt;
| Size&lt;br /&gt;
|-&lt;br /&gt;
| 0xA&lt;br /&gt;
| 0x2&lt;br /&gt;
| Flags&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Configuration blocks==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  BlkID&lt;br /&gt;
!  Size&lt;br /&gt;
!  Flags&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050001&lt;br /&gt;
| ?&lt;br /&gt;
| 0x8&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050005&lt;br /&gt;
| 0x20&lt;br /&gt;
|?&lt;br /&gt;
| Stereo camera settings?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00070001&lt;br /&gt;
| 0x1&lt;br /&gt;
|?&lt;br /&gt;
| Sound output mode?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080000&lt;br /&gt;
| 0xC00&lt;br /&gt;
| 0x2?&lt;br /&gt;
| WiFi configuration slot 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080001&lt;br /&gt;
| 0xC00&lt;br /&gt;
| 0x2?&lt;br /&gt;
| WiFi configuration slot 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080002&lt;br /&gt;
| 0xC00&lt;br /&gt;
| 0x2?&lt;br /&gt;
| WiFi configuration slot 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090000&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x2?&lt;br /&gt;
| This contains a u64 ID, used by processes using [[NWMUDS:Initialize]]. The first word is the same as [[CfgS:GetLocalFriendCodeSeed|LocalFriendCodeSeed]], while the latter is a separate random word&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090001&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0xE&lt;br /&gt;
| This console-unique u64 used by [[Cfg:GenHashConsoleUnique|GenHashConsoleUnique]] is generated with the LocalFriendCodeSeed and with random data&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A0000&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 0xE&lt;br /&gt;
| Username&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A0001&lt;br /&gt;
| 0x2&lt;br /&gt;
| 0x2&lt;br /&gt;
| ??&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A0002&lt;br /&gt;
| 0x1&lt;br /&gt;
| 0xA&lt;br /&gt;
| Language&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B0000&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x8&lt;br /&gt;
| CountryInfo&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B0001&lt;br /&gt;
| 0x800&lt;br /&gt;
| 0x2?&lt;br /&gt;
| Country name in UTF-16, every 0x80-bytes is an entry for each language(not all entries are set)&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B0002&lt;br /&gt;
| 0x800&lt;br /&gt;
| 0x2?&lt;br /&gt;
| State name in UTF-16, every 0x80-bytes is an entry for each language&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0000&lt;br /&gt;
| 0xC0&lt;br /&gt;
|?&lt;br /&gt;
| Restricted photo exchange data, and other info&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0001&lt;br /&gt;
| 0x14&lt;br /&gt;
|?&lt;br /&gt;
| Same as above?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D0000&lt;br /&gt;
| 0x4&lt;br /&gt;
|?&lt;br /&gt;
| u16 at offset 0x0: [[SMDH#EULA_Version|EULA Version]] which was agreed to.&lt;br /&gt;
|-&lt;br /&gt;
| 0x000F0000&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x8?&lt;br /&gt;
| Unknown, used by [[NS]] on dev-units for [[SVC|svcKernelSetState]], where Type is 6. During NS startup on debug-units, NS compares the u32 from +8 in this config-block with the [[Configuration_Memory#APPMEMTYPE|APPMEMTYPE]]. When those don&#039;t match NS starts a FIRM-launch (with the same FIRM titleID as the currently running one) to boot into a FIRM with the APPMEMTYPE value from this config-block&lt;br /&gt;
|-&lt;br /&gt;
| 0x000F0004&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x8?&lt;br /&gt;
| The first u8 is the System-Model [[Cfg:GetSystemModel|value]], the last 3-bytes are unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x00110000&lt;br /&gt;
| 0x4&lt;br /&gt;
|?&lt;br /&gt;
| The low u16 indicates whether the system setup is required, such as when the system is booted for the first time or after doing a [[System Settings|System Format]]: 0 = setup required, non-zero = no setup required&lt;br /&gt;
|-&lt;br /&gt;
| 0x00110001&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0xA?&lt;br /&gt;
| TitleID of the menu to launch, used by [[NS]] on dev units (this block can be edited on dev units with [[3DS Development Unit Software#Config|Config]])&lt;br /&gt;
|-&lt;br /&gt;
| 0x00130000&lt;br /&gt;
| 0x4&lt;br /&gt;
|?&lt;br /&gt;
| If response is 0x100 then debug mode is enabled.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00160000&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x8?&lt;br /&gt;
| Unknown, first byte is used by config service-cmd [[Config_Services|0x00070040]]. (Unknown whether the last 3-bytes are used)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The developer unit TID block only exists on developer units.&lt;br /&gt;
&lt;br /&gt;
===Languages===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  ID&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| JP&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| EN&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| FR&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| DE&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| IT&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| ES&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| ZH&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| KO&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| NL&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| PT&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| RU&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| TW&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===CountryInfo===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Byte&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Country code, same as DSi/Wii country codes. Value 0xFF is invalid.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===0x000A0000 Block===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Byte&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0-0x13&lt;br /&gt;
| UTF-16 username, with no NULL-terminator.&lt;br /&gt;
|-&lt;br /&gt;
| 0x14-17&lt;br /&gt;
| Usually zero?&lt;br /&gt;
|-&lt;br /&gt;
| 0x18-0x1B&lt;br /&gt;
| u32 NGWord version the username was last checked with. If this value is less than the u32 stored in the NGWord CFA &amp;quot;romfs:/version.dat&amp;quot;, the system then checks the username string with the bad-word list CFA again, then updates this field with the value from the CFA&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=MCU_Services&amp;diff=12522</id>
		<title>MCU Services</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=MCU_Services&amp;diff=12522"/>
		<updated>2015-04-25T02:18:14Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: /* MCU GPU service &amp;quot;mcu::GPU&amp;quot; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Only one session can be open per service at a time. If a session is already open for a service, MCU module will wait for the thread handling the session to terminate(triggered by the session being closed by the user process), then it accepts the new session. The commands for each service are handled by separate threads.&lt;br /&gt;
&lt;br /&gt;
=MCU camera service &amp;quot;mcu::CAM&amp;quot;=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0001....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0002....&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=MCU GPU service &amp;quot;mcu::GPU&amp;quot;=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0001....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0002....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0003000&lt;br /&gt;
| Called by 0107builder (gsp module)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0004....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0005....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0006....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0007....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0008....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0009....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000E....&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=MCU HID service &amp;quot;mcu::HID&amp;quot;=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0002....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0003....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0004....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0005....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0006....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0007....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0008....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A0000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D0000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000E0000&lt;br /&gt;
| [[MCUHID:GetSoundVolume|GetSoundVolume]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=MCU service &amp;quot;mcu::RTC&amp;quot;=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0001....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0002....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0003....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0004....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0005....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0006....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0007....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0008....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0009....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000E....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000F....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0010....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0011....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0012....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0013....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0014....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0015....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0016....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0017....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0018....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0019....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x001A....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x001B....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x001C....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x001D....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x001E....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x001F0040&lt;br /&gt;
| SetPedometerRecordingMode&lt;br /&gt;
|-&lt;br /&gt;
| 0x00200000&lt;br /&gt;
| GetPedometerState&lt;br /&gt;
|-&lt;br /&gt;
| 0x0021....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0022....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0023....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0024....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0025....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0026....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0027....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0028....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0029....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x002A0000&lt;br /&gt;
| GetShellState&lt;br /&gt;
|-&lt;br /&gt;
| 0x002B0000&lt;br /&gt;
| GetAdapterState&lt;br /&gt;
|-&lt;br /&gt;
| 0x002C0000&lt;br /&gt;
| GetBatteryChargeState&lt;br /&gt;
|-&lt;br /&gt;
| 0x002D0000&lt;br /&gt;
| [[MCURTC:GetBatteryLevel|GetBatteryLevel]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002E....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x002F....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0030....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0031....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0032....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0033....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0034....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0035....&lt;br /&gt;
| Writes 0x10 to i2c MCU device, reg 0x20&lt;br /&gt;
|-&lt;br /&gt;
| 0x0036....&lt;br /&gt;
| Writes char at cmdbuf[1] to i2c MCU device, reg 0x24&lt;br /&gt;
|-&lt;br /&gt;
| 0x0037....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0038....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0039....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x003A....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x003B0640&lt;br /&gt;
| [[MCURTC:SetInfoLEDPattern|SetInfoLEDPattern]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x003C0040&lt;br /&gt;
| [[MCURTC:SetInfoLEDPatternHeader|SetInfoLEDPatternHeader]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x003D0000&lt;br /&gt;
| [[MCURTC:GetInfoLEDStatus|GetInfoLEDStatus]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x003E....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x003F....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0040....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0041....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00420040&lt;br /&gt;
| [[MCURTC:SetBatteryEmptyLEDPattern|SetBatteryEmptyLEDPattern]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x0043....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0044....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0045....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0046....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0047....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0048....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0049....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x004A....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x004B....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x004C....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x004D....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x004E....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x004F....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0050....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0051....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00520000&lt;br /&gt;
| IsLegacyPoweroff&lt;br /&gt;
|-&lt;br /&gt;
| 0x0053....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0054....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0055....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0056....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0057....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0058....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0059....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x005A....&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that using invalid input with these InfoLED/SetBatteryEmptyLEDPattern commands(especially SetInfoLEDPattern) can cause the system to be bricked(however the boot failure may not begin immediately after using the invalid parameters). For the bitmasks controlling these LEDs, bit clear = LED enable, bit set = LED disable? These notification LEDs(red LED, green LED, blue LED, ...) can only be enabled/disabled, nothing more.&lt;br /&gt;
&lt;br /&gt;
=MCU sound service &amp;quot;mcu::SND&amp;quot;=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0001....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0002....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0003....&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=MCU wifi service &amp;quot;mcu::NWM&amp;quot;=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0001....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0002....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0003....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0004....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0005....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0006....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0007....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0008....&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=MCU service &amp;quot;mcu::HWC&amp;quot;=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0001....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0002....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0003....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0004....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0005....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0006....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0007....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0008....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0009....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A0640&lt;br /&gt;
| This is the same as [[MCURTC:SetInfoLEDPattern]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000E....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000F....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0010....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0011....&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=MCU service &amp;quot;mcu::PLS&amp;quot;=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0001....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0002....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0003....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0004....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0005....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0006....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0007....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0008....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0009....&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=MCU codec service &amp;quot;mcu::CDC&amp;quot;=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010000&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=GPU/Internal_Registers&amp;diff=12503</id>
		<title>GPU/Internal Registers</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=GPU/Internal_Registers&amp;diff=12503"/>
		<updated>2015-04-21T20:56:38Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: /* Register list */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:GFX]]&lt;br /&gt;
(this page is hugely WIP)&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
GPU internal registers are written to through GPU commands. They are used to control the GPU&#039;s behavior, that is to say tell it to draw stuff and how we want it drawn.&lt;br /&gt;
&lt;br /&gt;
== Types ==&lt;br /&gt;
&lt;br /&gt;
There are three main types of registers :&lt;br /&gt;
* configuration registers, which directly map to various rendering properties (for example : [[#GPUREG_FACECULLING_CONFIG|GPUREG_FACECULLING_CONFIG]])&lt;br /&gt;
* data transfer registers, which can be seen as FIFOs that let us send sequential chunks of data to the GPU, such as shader code or 1D samplers (for example : [[#GPUREG_GSH_CODETRANSFER_DATA|GPUREG_GSH_CODETRANSFER_DATA]])&lt;br /&gt;
* action triggering registers, which tell the GPU to do something, like draw a primitive (for example : [[#GPUREG_DRAWARRAYS|GPUREG_DRAWARRAYS]])&lt;br /&gt;
&lt;br /&gt;
== Aliases ==&lt;br /&gt;
&lt;br /&gt;
It is possible for multiple register (sequential) IDs to correspond to the same register. This is done to leverage the consecutive writing mode for [[GPU Commands]], which makes it possible for a single command to write data to multiple sequential register IDs. For example, register IDs 02C1 through 02C8 all correspond to [[#GPUREG_VSH_FLOATUNIFORM_DATA|GPUREG_VSH_FLOATUNIFORM_DATA]] so that a consecutively writing command based at 02C0 will write its first parameter to [[#GPUREG_VSH_FLOATUNIFORM_CONFIG|GPUREG_VSH_FLOATUNIFORM_CONFIG]] and ever subsequent ones to [[#GPUREG_VSH_FLOATUNIFORM_DATA|GPUREG_VSH_FLOATUNIFORM_DATA]]&lt;br /&gt;
&lt;br /&gt;
== Register list ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Register ID&lt;br /&gt;
! Register name&lt;br /&gt;
! Notes&lt;br /&gt;
! Official Name&lt;br /&gt;
|-&lt;br /&gt;
| 0000&lt;br /&gt;
| [[#GPUREG_0000|GPUREG_0000]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0001&lt;br /&gt;
| [[#GPUREG_0001|GPUREG_0001]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0002&lt;br /&gt;
| [[#GPUREG_0002|GPUREG_0002]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0003&lt;br /&gt;
| [[#GPUREG_0003|GPUREG_0003]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0004&lt;br /&gt;
| [[#GPUREG_0004|GPUREG_0004]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0005&lt;br /&gt;
| [[#GPUREG_0005|GPUREG_0005]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0006&lt;br /&gt;
| [[#GPUREG_0006|GPUREG_0006]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0007&lt;br /&gt;
| [[#GPUREG_0007|GPUREG_0007]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0008&lt;br /&gt;
| [[#GPUREG_0008|GPUREG_0008]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0009&lt;br /&gt;
| [[#GPUREG_0009|GPUREG_0009]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 000A&lt;br /&gt;
| [[#GPUREG_000A|GPUREG_000A]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 000B&lt;br /&gt;
| [[#GPUREG_000B|GPUREG_000B]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 000C&lt;br /&gt;
| [[#GPUREG_000C|GPUREG_000C]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 000D&lt;br /&gt;
| [[#GPUREG_000D|GPUREG_000D]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 000E&lt;br /&gt;
| [[#GPUREG_000E|GPUREG_000E]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 000F&lt;br /&gt;
| [[#GPUREG_000F|GPUREG_000F]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0010&lt;br /&gt;
| [[#GPUREG_FINALIZE|GPUREG_FINALIZE]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0011&lt;br /&gt;
| [[#GPUREG_0011|GPUREG_0011]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0012&lt;br /&gt;
| [[#GPUREG_0012|GPUREG_0012]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0013&lt;br /&gt;
| [[#GPUREG_0013|GPUREG_0013]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0014&lt;br /&gt;
| [[#GPUREG_0014|GPUREG_0014]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0015&lt;br /&gt;
| [[#GPUREG_0015|GPUREG_0015]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0016&lt;br /&gt;
| [[#GPUREG_0016|GPUREG_0016]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0017&lt;br /&gt;
| [[#GPUREG_0017|GPUREG_0017]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0018&lt;br /&gt;
| [[#GPUREG_0018|GPUREG_0018]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0019&lt;br /&gt;
| [[#GPUREG_0019|GPUREG_0019]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 001A&lt;br /&gt;
| [[#GPUREG_001A|GPUREG_001A]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 001B&lt;br /&gt;
| [[#GPUREG_001B|GPUREG_001B]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 001C&lt;br /&gt;
| [[#GPUREG_001C|GPUREG_001C]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 001D&lt;br /&gt;
| [[#GPUREG_001D|GPUREG_001D]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 001E&lt;br /&gt;
| [[#GPUREG_001E|GPUREG_001E]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 001F&lt;br /&gt;
| [[#GPUREG_001F|GPUREG_001F]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0020&lt;br /&gt;
| [[#GPUREG_0020|GPUREG_0020]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0021&lt;br /&gt;
| [[#GPUREG_0021|GPUREG_0021]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0022&lt;br /&gt;
| [[#GPUREG_0022|GPUREG_0022]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0023&lt;br /&gt;
| [[#GPUREG_0023|GPUREG_0023]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0024&lt;br /&gt;
| [[#GPUREG_0024|GPUREG_0024]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0025&lt;br /&gt;
| [[#GPUREG_0025|GPUREG_0025]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0026&lt;br /&gt;
| [[#GPUREG_0026|GPUREG_0026]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0027&lt;br /&gt;
| [[#GPUREG_0027|GPUREG_0027]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0028&lt;br /&gt;
| [[#GPUREG_0028|GPUREG_0028]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0029&lt;br /&gt;
| [[#GPUREG_0029|GPUREG_0029]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 002A&lt;br /&gt;
| [[#GPUREG_002A|GPUREG_002A]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 002B&lt;br /&gt;
| [[#GPUREG_002B|GPUREG_002B]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 002C&lt;br /&gt;
| [[#GPUREG_002C|GPUREG_002C]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 002D&lt;br /&gt;
| [[#GPUREG_002D|GPUREG_002D]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 002E&lt;br /&gt;
| [[#GPUREG_002E|GPUREG_002E]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 002F&lt;br /&gt;
| [[#GPUREG_002F|GPUREG_002F]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0030&lt;br /&gt;
| [[#GPUREG_0030|GPUREG_0030]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0031&lt;br /&gt;
| [[#GPUREG_0031|GPUREG_0031]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0032&lt;br /&gt;
| [[#GPUREG_0032|GPUREG_0032]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0033&lt;br /&gt;
| [[#GPUREG_0033|GPUREG_0033]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0034&lt;br /&gt;
| [[#GPUREG_0034|GPUREG_0034]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0035&lt;br /&gt;
| [[#GPUREG_0035|GPUREG_0035]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0036&lt;br /&gt;
| [[#GPUREG_0036|GPUREG_0036]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0037&lt;br /&gt;
| [[#GPUREG_0037|GPUREG_0037]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0038&lt;br /&gt;
| [[#GPUREG_0038|GPUREG_0038]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0039&lt;br /&gt;
| [[#GPUREG_0039|GPUREG_0039]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 003A&lt;br /&gt;
| [[#GPUREG_003A|GPUREG_003A]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 003B&lt;br /&gt;
| [[#GPUREG_003B|GPUREG_003B]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 003C&lt;br /&gt;
| [[#GPUREG_003C|GPUREG_003C]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 003D&lt;br /&gt;
| [[#GPUREG_003D|GPUREG_003D]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 003E&lt;br /&gt;
| [[#GPUREG_003E|GPUREG_003E]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 003F&lt;br /&gt;
| [[#GPUREG_003F|GPUREG_003F]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0040&lt;br /&gt;
| [[#GPUREG_FACECULLING_CONFIG|GPUREG_FACECULLING_CONFIG]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_CULL_FACE&lt;br /&gt;
|-&lt;br /&gt;
| 0041&lt;br /&gt;
| [[#GPUREG_0041|GPUREG_0041]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_VIEWPORT_WIDTH1&lt;br /&gt;
|-&lt;br /&gt;
| 0042&lt;br /&gt;
| [[#GPUREG_0042|GPUREG_0042]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_VIEWPORT_WIDTH2&lt;br /&gt;
|-&lt;br /&gt;
| 0043&lt;br /&gt;
| [[#GPUREG_0043|GPUREG_0043]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_VIEWPORT_HEIGHT1&lt;br /&gt;
|-&lt;br /&gt;
| 0044&lt;br /&gt;
| [[#GPUREG_0044|GPUREG_0044]]&lt;br /&gt;
| ?&lt;br /&gt;
|PICA_REG_VIEWPORT_HEIGHT2&lt;br /&gt;
|-&lt;br /&gt;
| 0045&lt;br /&gt;
| [[#GPUREG_0045|GPUREG_0045]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0046&lt;br /&gt;
| [[#GPUREG_0046|GPUREG_0046]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0047&lt;br /&gt;
| [[#GPUREG_0047|GPUREG_0047]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_OP_CLIP&lt;br /&gt;
|-&lt;br /&gt;
| 0048&lt;br /&gt;
| [[#GPUREG_0048|GPUREG_0048]]&lt;br /&gt;
|? &lt;br /&gt;
|PICA_REG_FRAG_OP_CLIP_DATA1&lt;br /&gt;
|-&lt;br /&gt;
| 0049&lt;br /&gt;
| [[#GPUREG_0049|GPUREG_0049]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_OP_CLIP_DATA2&lt;br /&gt;
|-&lt;br /&gt;
| 004A&lt;br /&gt;
| [[#GPUREG_004A|GPUREG_004A]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_OP_CLIP_DATA3&lt;br /&gt;
|-&lt;br /&gt;
| 004B&lt;br /&gt;
| [[#GPUREG_004B|GPUREG_004B]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_OP_CLIP_DATA4&lt;br /&gt;
|-&lt;br /&gt;
| 004C&lt;br /&gt;
| [[#GPUREG_004C|GPUREG_004C]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 004D&lt;br /&gt;
| [[#GPUREG_DEPTHMAP_SCALE|GPUREG_DEPTHMAP_SCALE]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_FRAG_OP_WSCALE_DATA1&lt;br /&gt;
|-&lt;br /&gt;
| 004E&lt;br /&gt;
| [[#GPUREG_DEPTHMAP_OFFSET|GPUREG_DEPTHMAP_OFFSET]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_FRAG_OP_WSCALE_DATA2&lt;br /&gt;
|-&lt;br /&gt;
| 004F&lt;br /&gt;
| [[#GPUREG_SH_OUTMAP_TOTAL|GPUREG_SH_OUTMAP_TOTAL]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_OUT_REG_NUM0 / PICA_REG_VS_OUT_REG_NUM0&lt;br /&gt;
|-&lt;br /&gt;
| 0050&lt;br /&gt;
| [[#GPUREG_SH_OUTMAP_O0|GPUREG_SH_OUTMAP_O0]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_OUT_ATTR0 / PICA_REG_VS_OUT_ATTR0&lt;br /&gt;
|-&lt;br /&gt;
| 0051&lt;br /&gt;
| [[#GPUREG_SH_OUTMAP_O1|GPUREG_SH_OUTMAP_O1]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_OUT_ATTR1 / PICA_REG_VS_OUT_ATTR1&lt;br /&gt;
|-&lt;br /&gt;
| 0052&lt;br /&gt;
| [[#GPUREG_SH_OUTMAP_O2|GPUREG_SH_OUTMAP_O2]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_OUT_ATTR2 / PICA_REG_VS_OUT_ATTR2&lt;br /&gt;
|-&lt;br /&gt;
| 0053&lt;br /&gt;
| [[#GPUREG_SH_OUTMAP_O3|GPUREG_SH_OUTMAP_O3]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_OUT_ATTR3 / PICA_REG_VS_OUT_ATTR3&lt;br /&gt;
|-&lt;br /&gt;
| 0054&lt;br /&gt;
| [[#GPUREG_SH_OUTMAP_O4|GPUREG_SH_OUTMAP_O4]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_OUT_ATTR4 / PICA_REG_VS_OUT_ATTR4&lt;br /&gt;
|-&lt;br /&gt;
| 0055&lt;br /&gt;
| [[#GPUREG_SH_OUTMAP_O5|GPUREG_SH_OUTMAP_O5]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_OUT_ATTR5 / PICA_REG_VS_OUT_ATTR5&lt;br /&gt;
|-&lt;br /&gt;
| 0056&lt;br /&gt;
| [[#GPUREG_SH_OUTMAP_O6|GPUREG_SH_OUTMAP_O6]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_OUT_ATTR6 / PICA_REG_VS_OUT_ATTR6&lt;br /&gt;
|-&lt;br /&gt;
| 0057&lt;br /&gt;
| [[#GPUREG_0057|GPUREG_0057]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0058&lt;br /&gt;
| [[#GPUREG_0058|GPUREG_0058]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0059&lt;br /&gt;
| [[#GPUREG_0059|GPUREG_0059]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 005A&lt;br /&gt;
| [[#GPUREG_005A|GPUREG_005A]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 005B&lt;br /&gt;
| [[#GPUREG_005B|GPUREG_005B]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 005C&lt;br /&gt;
| [[#GPUREG_005C|GPUREG_005C]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 005D&lt;br /&gt;
| [[#GPUREG_005D|GPUREG_005D]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 005E&lt;br /&gt;
| [[#GPUREG_005E|GPUREG_005E]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 005F&lt;br /&gt;
| [[#GPUREG_005F|GPUREG_005F]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0060&lt;br /&gt;
| [[#GPUREG_0060|GPUREG_0060]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0061&lt;br /&gt;
| [[#GPUREG_0061|GPUREG_0061]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_EARLY_DEPTH_FUNC&lt;br /&gt;
|-&lt;br /&gt;
| 0062&lt;br /&gt;
| [[#GPUREG_0062|GPUREG_0062]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_EARLY_DEPTH_TEST1&lt;br /&gt;
|-&lt;br /&gt;
| 0063&lt;br /&gt;
| [[#GPUREG_0063|GPUREG_0063]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0064&lt;br /&gt;
| [[#GPUREG_0064|GPUREG_0064]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_GS_OUT_ATTR_MODE / PICA_REG_VS_OUT_ATTR_MODE&lt;br /&gt;
|-&lt;br /&gt;
| 0065&lt;br /&gt;
| [[#GPUREG_SCISSORTEST_MODE|GPUREG_SCISSORTEST_MODE]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_SCISSOR&lt;br /&gt;
|-&lt;br /&gt;
| 0066&lt;br /&gt;
| [[#GPUREG_SCISSORTEST_POS|GPUREG_SCISSORTEST_POS]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_SCISSOR_XY&lt;br /&gt;
|-&lt;br /&gt;
| 0067&lt;br /&gt;
| [[#GPUREG_SCISSORTEST_DIM|GPUREG_SCISSORTEST_DIM]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_SCISSOR_SIZE&lt;br /&gt;
|-&lt;br /&gt;
| 0068&lt;br /&gt;
| [[#GPUREG_0068|GPUREG_0068]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_VIEWPORT_XY&lt;br /&gt;
|-&lt;br /&gt;
| 0069&lt;br /&gt;
| [[#GPUREG_0069|GPUREG_0069]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 006A&lt;br /&gt;
| [[#GPUREG_006A|GPUREG_006A]]&lt;br /&gt;
|&lt;br /&gt;
|PICA_REG_EARLY_DEPTH_DATA&lt;br /&gt;
|-&lt;br /&gt;
| 006B&lt;br /&gt;
| [[#GPUREG_006B|GPUREG_006B]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 006C&lt;br /&gt;
| [[#GPUREG_006C|GPUREG_006C]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 006D&lt;br /&gt;
| [[#GPUREG_006D|GPUREG_006D]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_OP_WSCALE&lt;br /&gt;
|-&lt;br /&gt;
| 006E&lt;br /&gt;
| [[#GPUREG_006E|GPUREG_006E]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_RENDER_BUF_RESOLUTION1&lt;br /&gt;
|-&lt;br /&gt;
| 006F&lt;br /&gt;
| [[#GPUREG_006F|GPUREG_006F]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_GS_OUT_ATTR_CLK / PICA_REG_VS_OUT_ATTR_CLK&lt;br /&gt;
|-&lt;br /&gt;
| 0070&lt;br /&gt;
| [[#GPUREG_0070|GPUREG_0070]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0071&lt;br /&gt;
| [[#GPUREG_0071|GPUREG_0071]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0072&lt;br /&gt;
| [[#GPUREG_0072|GPUREG_0072]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0073&lt;br /&gt;
| [[#GPUREG_0073|GPUREG_0073]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0074&lt;br /&gt;
| [[#GPUREG_0074|GPUREG_0074]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0075&lt;br /&gt;
| [[#GPUREG_0075|GPUREG_0075]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0076&lt;br /&gt;
| [[#GPUREG_0076|GPUREG_0076]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0077&lt;br /&gt;
| [[#GPUREG_0077|GPUREG_0077]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0078&lt;br /&gt;
| [[#GPUREG_0078|GPUREG_0078]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0079&lt;br /&gt;
| [[#GPUREG_0079|GPUREG_0079]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 007A&lt;br /&gt;
| [[#GPUREG_007A|GPUREG_007A]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 007B&lt;br /&gt;
| [[#GPUREG_007B|GPUREG_007B]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 007C&lt;br /&gt;
| [[#GPUREG_007C|GPUREG_007C]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 007D&lt;br /&gt;
| [[#GPUREG_007D|GPUREG_007D]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 007E&lt;br /&gt;
| [[#GPUREG_007E|GPUREG_007E]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 007F&lt;br /&gt;
| [[#GPUREG_007F|GPUREG_007F]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0080&lt;br /&gt;
| [[#GPUREG_TEXUNITS_CONFIG|GPUREG_TEXUNITS_CONFIG]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEXTURE_FUNC&lt;br /&gt;
|-&lt;br /&gt;
| 0081&lt;br /&gt;
| [[#GPUREG_0081|GPUREG_0081]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_TEXTURE0_BORDER_COLOR&lt;br /&gt;
|-&lt;br /&gt;
| 0082&lt;br /&gt;
| [[#GPUREG_TEXUNIT0_DIM|GPUREG_TEXUNIT0_DIM]]&lt;br /&gt;
|&lt;br /&gt;
|PICA_REG_TEXTURE0_SIZE&lt;br /&gt;
|-&lt;br /&gt;
| 0083&lt;br /&gt;
| [[#GPUREG_TEXUNIT0_PARAM|GPUREG_TEXUNIT0_PARAM]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEXTURE0_WRAP_FILTER&lt;br /&gt;
|-&lt;br /&gt;
| 0084&lt;br /&gt;
| [[#GPUREG_0084|GPUREG_0084]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_TEXTURE0_LOD&lt;br /&gt;
|-&lt;br /&gt;
| 0085&lt;br /&gt;
| [[#GPUREG_TEXUNIT0_LOC|GPUREG_TEXUNIT0_LOC]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEXTURE0_ADDR1&lt;br /&gt;
|-&lt;br /&gt;
| 0086&lt;br /&gt;
| [[#GPUREG_0086|GPUREG_0086]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEXTURE0_ADDR2&lt;br /&gt;
|-&lt;br /&gt;
| 0087&lt;br /&gt;
| [[#GPUREG_0087|GPUREG_0087]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEXTURE0_ADDR3&lt;br /&gt;
|-&lt;br /&gt;
| 0088&lt;br /&gt;
| [[#GPUREG_0088|GPUREG_0088]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEXTURE0_ADDR4&lt;br /&gt;
|-&lt;br /&gt;
| 0089&lt;br /&gt;
| [[#GPUREG_0089|GPUREG_0089]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEXTURE0_ADDR5&lt;br /&gt;
|-&lt;br /&gt;
| 008A&lt;br /&gt;
| [[#GPUREG_008A|GPUREG_008A]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEXTURE0_ADDR6&lt;br /&gt;
|-&lt;br /&gt;
| 008B&lt;br /&gt;
| [[#GPUREG_008B|GPUREG_008B]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_TEXTURE0_SHADOW&lt;br /&gt;
|-&lt;br /&gt;
| 008C&lt;br /&gt;
| [[#GPUREG_008C|GPUREG_008C]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 008D&lt;br /&gt;
| [[#GPUREG_008D|GPUREG_008D]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 008E&lt;br /&gt;
| [[#GPUREG_TEXUNIT0_TYPE|GPUREG_TEXUNIT0_TYPE]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_TEXTURE0_FORMAT&lt;br /&gt;
|-&lt;br /&gt;
| 008F&lt;br /&gt;
| [[#GPUREG_008F|GPUREG_008F]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT_EN0&lt;br /&gt;
|-&lt;br /&gt;
| 0090&lt;br /&gt;
| [[#GPUREG_0090|GPUREG_0090]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0091&lt;br /&gt;
| [[#GPUREG_0091|GPUREG_0091]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_TEXTURE1_BORDER_COLOR&lt;br /&gt;
|-&lt;br /&gt;
| 0092&lt;br /&gt;
| [[#GPUREG_TEXUNIT1_DIM|GPUREG_TEXUNIT1_DIM]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEXTURE1_SIZE&lt;br /&gt;
|-&lt;br /&gt;
| 0093&lt;br /&gt;
| [[#GPUREG_TEXUNIT1_PARAM|GPUREG_TEXUNIT1_PARAM]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEXTURE1_WRAP_FILTER&lt;br /&gt;
|-&lt;br /&gt;
| 0094&lt;br /&gt;
| [[#GPUREG_0094|GPUREG_0094]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_TEXTURE1_LOD&lt;br /&gt;
|-&lt;br /&gt;
| 0095&lt;br /&gt;
| [[#GPUREG_TEXUNIT1_LOC|GPUREG_TEXUNIT1_LOC]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEXTURE1_ADDR&lt;br /&gt;
|-&lt;br /&gt;
| 0096&lt;br /&gt;
| [[#GPUREG_TEXUNIT1_TYPE|GPUREG_TEXUNIT1_TYPE]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEXTURE1_FORMAT&lt;br /&gt;
|-&lt;br /&gt;
| 0097&lt;br /&gt;
| [[#GPUREG_0097|GPUREG_0097]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0098&lt;br /&gt;
| [[#GPUREG_0098|GPUREG_0098]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0099&lt;br /&gt;
| [[#GPUREG_0099|GPUREG_0099]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_TEXTURE2_BORDER_COLOR&lt;br /&gt;
|-&lt;br /&gt;
| 009A&lt;br /&gt;
| [[#GPUREG_TEXUNIT2_DIM|GPUREG_TEXUNIT2_DIM]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEXTURE2_SIZE&lt;br /&gt;
|-&lt;br /&gt;
| 009B&lt;br /&gt;
| [[#GPUREG_TEXUNIT2_PARAM|GPUREG_TEXUNIT2_PARAM]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEXTURE2_WRAP_FILTER&lt;br /&gt;
|-&lt;br /&gt;
| 009C&lt;br /&gt;
| [[#GPUREG_009C|GPUREG_009C]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_TEXTURE2_LOD&lt;br /&gt;
|-&lt;br /&gt;
| 009D&lt;br /&gt;
| [[#GPUREG_TEXUNIT2_LOC|GPUREG_TEXUNIT2_LOC]]&lt;br /&gt;
|&lt;br /&gt;
|PICA_REG_TEXTURE2_ADDR&lt;br /&gt;
|-&lt;br /&gt;
| 009E&lt;br /&gt;
| [[#GPUREG_TEXUNIT2_TYPE|GPUREG_TEXUNIT2_TYPE]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEXTURE2_FORMAT&lt;br /&gt;
|-&lt;br /&gt;
| 009F&lt;br /&gt;
| [[#GPUREG_009F|GPUREG_009F]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 00A0&lt;br /&gt;
| [[#GPUREG_00A0|GPUREG_00A0]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 00A1&lt;br /&gt;
| [[#GPUREG_00A1|GPUREG_00A1]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 00A2&lt;br /&gt;
| [[#GPUREG_00A2|GPUREG_00A2]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 00A3&lt;br /&gt;
| [[#GPUREG_00A3|GPUREG_00A3]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 00A4&lt;br /&gt;
| [[#GPUREG_00A4|GPUREG_00A4]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 00A5&lt;br /&gt;
| [[#GPUREG_00A5|GPUREG_00A5]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 00A6&lt;br /&gt;
| [[#GPUREG_00A6|GPUREG_00A6]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 00A7&lt;br /&gt;
| [[#GPUREG_00A7|GPUREG_00A7]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 00A8&lt;br /&gt;
| [[#GPUREG_00A8|GPUREG_00A8]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_TEXTURE3_PROTEX0&lt;br /&gt;
|-&lt;br /&gt;
| 00A9&lt;br /&gt;
| [[#GPUREG_00A9|GPUREG_00A9]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_TEXTURE3_PROTEX1&lt;br /&gt;
|-&lt;br /&gt;
| 00AA&lt;br /&gt;
| [[#GPUREG_00AA|GPUREG_00AA]]&lt;br /&gt;
|? &lt;br /&gt;
|PICA_REG_TEXTURE3_PROTEX2&lt;br /&gt;
|-&lt;br /&gt;
| 00AB&lt;br /&gt;
| [[#GPUREG_00AB|GPUREG_00AB]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_TEXTURE3_PROTEX3&lt;br /&gt;
|-&lt;br /&gt;
| 00AC&lt;br /&gt;
| [[#GPUREG_00AC|GPUREG_00AC]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_TEXTURE3_PROTEX4&lt;br /&gt;
|-&lt;br /&gt;
| 00AD&lt;br /&gt;
| [[#GPUREG_00AD|GPUREG_00AD]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_TEXTURE3_PROTEX5&lt;br /&gt;
|-&lt;br /&gt;
| 00AE&lt;br /&gt;
| [[#GPUREG_00AE|GPUREG_00AE]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 00AF&lt;br /&gt;
| [[#GPUREG_00AF|GPUREG_00AF]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_PROTEX_LUT&lt;br /&gt;
|-&lt;br /&gt;
| 00B0&lt;br /&gt;
| [[#GPUREG_00B0|GPUREG_00B0]]&lt;br /&gt;
| ?&lt;br /&gt;
|PICA_REG_PROTEX_LUT_DATA0&lt;br /&gt;
|-&lt;br /&gt;
| 00B1&lt;br /&gt;
| [[#GPUREG_00B1|GPUREG_00B1]]&lt;br /&gt;
| ?&lt;br /&gt;
|PICA_REG_PROTEX_LUT_DATA1&lt;br /&gt;
|-&lt;br /&gt;
| 00B2&lt;br /&gt;
| [[#GPUREG_00B2|GPUREG_00B2]]&lt;br /&gt;
| ?&lt;br /&gt;
|PICA_REG_PROTEX_LUT_DATA2&lt;br /&gt;
|-&lt;br /&gt;
| 00B3&lt;br /&gt;
| [[#GPUREG_00B3|GPUREG_00B3]]&lt;br /&gt;
| ?&lt;br /&gt;
|PICA_REG_PROTEX_LUT_DATA3&lt;br /&gt;
|-&lt;br /&gt;
| 00B4&lt;br /&gt;
| [[#GPUREG_00B4|GPUREG_00B4]]&lt;br /&gt;
| ?&lt;br /&gt;
|PICA_REG_PROTEX_LUT_DATA4&lt;br /&gt;
|-&lt;br /&gt;
| 00B5&lt;br /&gt;
| [[#GPUREG_00B5|GPUREG_00B5]]&lt;br /&gt;
| ?&lt;br /&gt;
|PICA_REG_PROTEX_LUT_DATA5&lt;br /&gt;
|-&lt;br /&gt;
| 00B6&lt;br /&gt;
| [[#GPUREG_00B6|GPUREG_00B6]]&lt;br /&gt;
| ?&lt;br /&gt;
|PICA_REG_PROTEX_LUT_DATA6&lt;br /&gt;
|-&lt;br /&gt;
| 00B7&lt;br /&gt;
| [[#GPUREG_00B7|GPUREG_00B7]]&lt;br /&gt;
| ?&lt;br /&gt;
|PICA_REG_PROTEX_LUT_DATA7&lt;br /&gt;
|-&lt;br /&gt;
| 00B8&lt;br /&gt;
| [[#GPUREG_00B8|GPUREG_00B8]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 00B9&lt;br /&gt;
| [[#GPUREG_00B9|GPUREG_00B9]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 00BA&lt;br /&gt;
| [[#GPUREG_00BA|GPUREG_00BA]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 00BB&lt;br /&gt;
| [[#GPUREG_00BB|GPUREG_00BB]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 00BC&lt;br /&gt;
| [[#GPUREG_00BC|GPUREG_00BC]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 00BD&lt;br /&gt;
| [[#GPUREG_00BD|GPUREG_00BD]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 00BE&lt;br /&gt;
| [[#GPUREG_00BE|GPUREG_00BE]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 00BF&lt;br /&gt;
| [[#GPUREG_00BF|GPUREG_00BF]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 00C0&lt;br /&gt;
| [[#GPUREG_TEXENV0_CONFIG0|GPUREG_TEXENV0_CONFIG0]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEX_ENV_0&lt;br /&gt;
|-&lt;br /&gt;
| 00C1&lt;br /&gt;
| [[#GPUREG_TEXENV0_CONFIG1|GPUREG_TEXENV0_CONFIG1]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEX_ENV_0_OPERAND&lt;br /&gt;
|-&lt;br /&gt;
| 00C2&lt;br /&gt;
| [[#GPUREG_TEXENV0_CONFIG2|GPUREG_TEXENV0_CONFIG2]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEX_ENV_0_COMBINE&lt;br /&gt;
|-&lt;br /&gt;
| 00C3&lt;br /&gt;
| [[#GPUREG_TEXENV0_CONFIG3|GPUREG_TEXENV0_CONFIG3]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEX_ENV_0_COLOR&lt;br /&gt;
|-&lt;br /&gt;
| 00C4&lt;br /&gt;
| [[#GPUREG_TEXENV0_CONFIG4|GPUREG_TEXENV0_CONFIG4]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEX_ENV_0_SCALE&lt;br /&gt;
|-&lt;br /&gt;
| 00C5&lt;br /&gt;
| [[#GPUREG_00C5|GPUREG_00C5]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 00C6&lt;br /&gt;
| [[#GPUREG_00C6|GPUREG_00C6]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 00C7&lt;br /&gt;
| [[#GPUREG_00C7|GPUREG_00C7]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 00C8&lt;br /&gt;
| [[#GPUREG_TEXENV1_CONFIG0|GPUREG_TEXENV1_CONFIG0]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEX_ENV_1&lt;br /&gt;
|-&lt;br /&gt;
| 00C9&lt;br /&gt;
| [[#GPUREG_TEXENV1_CONFIG1|GPUREG_TEXENV1_CONFIG1]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEX_ENV_1_OPERAND&lt;br /&gt;
|-&lt;br /&gt;
| 00CA&lt;br /&gt;
| [[#GPUREG_TEXENV1_CONFIG2|GPUREG_TEXENV1_CONFIG2]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEX_ENV_1_COMBINE&lt;br /&gt;
|-&lt;br /&gt;
| 00CB&lt;br /&gt;
| [[#GPUREG_TEXENV1_CONFIG3|GPUREG_TEXENV1_CONFIG3]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEX_ENV_1_COLOR&lt;br /&gt;
|-&lt;br /&gt;
| 00CC&lt;br /&gt;
| [[#GPUREG_TEXENV1_CONFIG4|GPUREG_TEXENV1_CONFIG4]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEX_ENV_1_SCALE&lt;br /&gt;
|-&lt;br /&gt;
| 00CD&lt;br /&gt;
| [[#GPUREG_00CD|GPUREG_00CD]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 00CE&lt;br /&gt;
| [[#GPUREG_00CE|GPUREG_00CE]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 00CF&lt;br /&gt;
| [[#GPUREG_00CF|GPUREG_00CF]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 00D0&lt;br /&gt;
| [[#GPUREG_TEXENV2_CONFIG0|GPUREG_TEXENV2_CONFIG0]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEX_ENV_2&lt;br /&gt;
|-&lt;br /&gt;
| 00D1&lt;br /&gt;
| [[#GPUREG_TEXENV2_CONFIG1|GPUREG_TEXENV2_CONFIG1]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEX_ENV_2_OPERAND&lt;br /&gt;
|-&lt;br /&gt;
| 00D2&lt;br /&gt;
| [[#GPUREG_TEXENV2_CONFIG2|GPUREG_TEXENV2_CONFIG2]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEX_ENV_2_COMBINE&lt;br /&gt;
|-&lt;br /&gt;
| 00D3&lt;br /&gt;
| [[#GPUREG_TEXENV2_CONFIG3|GPUREG_TEXENV2_CONFIG3]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEX_ENV_2_COLOR&lt;br /&gt;
|-&lt;br /&gt;
| 00D4&lt;br /&gt;
| [[#GPUREG_TEXENV2_CONFIG4|GPUREG_TEXENV2_CONFIG4]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEX_ENV_2_SCALE&lt;br /&gt;
|-&lt;br /&gt;
| 00D5&lt;br /&gt;
| [[#GPUREG_00D5|GPUREG_00D5]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 00D6&lt;br /&gt;
| [[#GPUREG_00D6|GPUREG_00D6]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 00D7&lt;br /&gt;
| [[#GPUREG_00D7|GPUREG_00D7]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 00D8&lt;br /&gt;
| [[#GPUREG_TEXENV3_CONFIG0|GPUREG_TEXENV3_CONFIG0]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEX_ENV_3&lt;br /&gt;
|-&lt;br /&gt;
| 00D9&lt;br /&gt;
| [[#GPUREG_TEXENV3_CONFIG1|GPUREG_TEXENV3_CONFIG1]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEX_ENV_3_OPERAND&lt;br /&gt;
|-&lt;br /&gt;
| 00DA&lt;br /&gt;
| [[#GPUREG_TEXENV3_CONFIG2|GPUREG_TEXENV3_CONFIG2]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEX_ENV_3_COMBINE&lt;br /&gt;
|-&lt;br /&gt;
| 00DB&lt;br /&gt;
| [[#GPUREG_TEXENV3_CONFIG3|GPUREG_TEXENV3_CONFIG3]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEX_ENV_3_COLOR&lt;br /&gt;
|-&lt;br /&gt;
| 00DC&lt;br /&gt;
| [[#GPUREG_TEXENV3_CONFIG4|GPUREG_TEXENV3_CONFIG4]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEX_ENV_3_SCALE&lt;br /&gt;
|-&lt;br /&gt;
| 00DD&lt;br /&gt;
| [[#GPUREG_00DD|GPUREG_00DD]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 00DE&lt;br /&gt;
| [[#GPUREG_00DE|GPUREG_00DE]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 00DF&lt;br /&gt;
| [[#GPUREG_00DF|GPUREG_00DF]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 00E0&lt;br /&gt;
| [[#GPUREG_00E0|GPUREG_00E0]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_GAS_FOG_MODE / PICA_REG_TEX_ENV_BUF_INPUT&lt;br /&gt;
|-&lt;br /&gt;
| 00E1&lt;br /&gt;
| [[#GPUREG_00E1|GPUREG_00E1]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FOG_COLOR&lt;br /&gt;
|-&lt;br /&gt;
| 00E2&lt;br /&gt;
| [[#GPUREG_00E2|GPUREG_00E2]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 00E3&lt;br /&gt;
| [[#GPUREG_00E3|GPUREG_00E3]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 00E4&lt;br /&gt;
| [[#GPUREG_00E4|GPUREG_00E4]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_GAS_ATTENUATION&lt;br /&gt;
|-&lt;br /&gt;
| 00E5&lt;br /&gt;
| [[#GPUREG_00E5|GPUREG_00E5]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_GAS_ACCMAX&lt;br /&gt;
|-&lt;br /&gt;
| 00E6&lt;br /&gt;
| [[#GPUREG_00E6|GPUREG_00E6]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FOG_LUT_INDEX&lt;br /&gt;
|-&lt;br /&gt;
| 00E7&lt;br /&gt;
| [[#GPUREG_00E7|GPUREG_00E7]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 00E8&lt;br /&gt;
| [[#GPUREG_00E8|GPUREG_00E8]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FOG_LUT_DATA0&lt;br /&gt;
|-&lt;br /&gt;
| 00E9&lt;br /&gt;
| [[#GPUREG_00E9|GPUREG_00E9]]&lt;br /&gt;
|? &lt;br /&gt;
|PICA_REG_FOG_LUT_DATA1&lt;br /&gt;
|-&lt;br /&gt;
| 00EA&lt;br /&gt;
| [[#GPUREG_00EA|GPUREG_00EA]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FOG_LUT_DATA2&lt;br /&gt;
|-&lt;br /&gt;
| 00EB&lt;br /&gt;
| [[#GPUREG_00EB|GPUREG_00EB]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FOG_LUT_DATA3&lt;br /&gt;
|-&lt;br /&gt;
| 00EC&lt;br /&gt;
| [[#GPUREG_00EC|GPUREG_00EC]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FOG_LUT_DATA4&lt;br /&gt;
|-&lt;br /&gt;
| 00ED&lt;br /&gt;
| [[#GPUREG_00ED|GPUREG_00ED]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FOG_LUT_DATA5&lt;br /&gt;
|-&lt;br /&gt;
| 00EE&lt;br /&gt;
| [[#GPUREG_00EE|GPUREG_00EE]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FOG_LUT_DATA6&lt;br /&gt;
|-&lt;br /&gt;
| 00EF&lt;br /&gt;
| [[#GPUREG_00EF|GPUREG_00EF]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FOG_LUT_DATA7&lt;br /&gt;
|-&lt;br /&gt;
| 00F0&lt;br /&gt;
| [[#GPUREG_TEXENV4_CONFIG0|GPUREG_TEXENV4_CONFIG0]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEX_ENV_4&lt;br /&gt;
|-&lt;br /&gt;
| 00F1&lt;br /&gt;
| [[#GPUREG_TEXENV4_CONFIG1|GPUREG_TEXENV4_CONFIG1]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEX_ENV_4_OPERAND&lt;br /&gt;
|-&lt;br /&gt;
| 00F2&lt;br /&gt;
| [[#GPUREG_TEXENV4_CONFIG2|GPUREG_TEXENV4_CONFIG2]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEX_ENV_4_COMBINE&lt;br /&gt;
|-&lt;br /&gt;
| 00F3&lt;br /&gt;
| [[#GPUREG_TEXENV4_CONFIG3|GPUREG_TEXENV4_CONFIG3]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEX_ENV_4_COLOR&lt;br /&gt;
|-&lt;br /&gt;
| 00F4&lt;br /&gt;
| [[#GPUREG_TEXENV4_CONFIG4|GPUREG_TEXENV4_CONFIG4]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEX_ENV_4_SCALE&lt;br /&gt;
|-&lt;br /&gt;
| 00F5&lt;br /&gt;
| [[#GPUREG_00F5|GPUREG_00F5]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 00F6&lt;br /&gt;
| [[#GPUREG_00F6|GPUREG_00F6]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 00F7&lt;br /&gt;
| [[#GPUREG_00F7|GPUREG_00F7]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 00F8&lt;br /&gt;
| [[#GPUREG_TEXENV5_CONFIG0|GPUREG_TEXENV5_CONFIG0]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEX_ENV_5&lt;br /&gt;
|-&lt;br /&gt;
| 00F9&lt;br /&gt;
| [[#GPUREG_TEXENV5_CONFIG1|GPUREG_TEXENV5_CONFIG1]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEX_ENV_5_OPERAND&lt;br /&gt;
|-&lt;br /&gt;
| 00FA&lt;br /&gt;
| [[#GPUREG_TEXENV5_CONFIG2|GPUREG_TEXENV5_CONFIG2]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEX_ENV_5_COMBINE&lt;br /&gt;
|-&lt;br /&gt;
| 00FB&lt;br /&gt;
| [[#GPUREG_TEXENV5_CONFIG3|GPUREG_TEXENV5_CONFIG3]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEX_ENV_5_COLOR&lt;br /&gt;
|-&lt;br /&gt;
| 00FC&lt;br /&gt;
| [[#GPUREG_TEXENV5_CONFIG4|GPUREG_TEXENV5_CONFIG4]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_TEX_ENV_5_SCALE&lt;br /&gt;
|-&lt;br /&gt;
| 00FD&lt;br /&gt;
| [[#GPUREG_00FD|GPUREG_00FD]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_TEX_ENV_BUF_COLOR&lt;br /&gt;
|-&lt;br /&gt;
| 00FE&lt;br /&gt;
| [[#GPUREG_00FE|GPUREG_00FE]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 00FF&lt;br /&gt;
| [[#GPUREG_00FF|GPUREG_00FF]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0100&lt;br /&gt;
| [[#GPUREG_COLOROUTPUT_CONFIG|GPUREG_COLOROUTPUT_CONFIG]]&lt;br /&gt;
| ?&lt;br /&gt;
|PICA_REG_COLOR_OPERATION&lt;br /&gt;
|-&lt;br /&gt;
| 0101&lt;br /&gt;
| [[#GPUREG_BLEND_CONFIG|GPUREG_BLEND_CONFIG]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_BLEND_FUNC&lt;br /&gt;
|-&lt;br /&gt;
| 0102&lt;br /&gt;
| [[#GPUREG_COLORLOGICOP_CONFIG|GPUREG_COLORLOGICOP_CONFIG]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_LOGIC_OP&lt;br /&gt;
|-&lt;br /&gt;
| 0103&lt;br /&gt;
| [[#GPUREG_BLEND_COLOR|GPUREG_BLEND_COLOR]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_BLEND_COLOR&lt;br /&gt;
|-&lt;br /&gt;
| 0104&lt;br /&gt;
| [[#GPUREG_ALPHATEST_CONFIG|GPUREG_ALPHATEST_CONFIG]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_FRAG_OP_ALPHA_TEST&lt;br /&gt;
|-&lt;br /&gt;
| 0105&lt;br /&gt;
| [[#GPUREG_STENCILTEST_CONFIG|GPUREG_STENCILTEST_CONFIG]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_STENCIL_TEST&lt;br /&gt;
|-&lt;br /&gt;
| 0106&lt;br /&gt;
| [[#GPUREG_STENCILOP_CONFIG|GPUREG_STENCILOP_CONFIG]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_STENCIL_OP&lt;br /&gt;
|-&lt;br /&gt;
| 0107&lt;br /&gt;
| [[#GPUREG_DEPTHTEST_CONFIG|GPUREG_DEPTHTEST_CONFIG]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_DEPTH_COLOR_MASK&lt;br /&gt;
|-&lt;br /&gt;
| 0108&lt;br /&gt;
| [[#GPUREG_0108|GPUREG_0108]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0109&lt;br /&gt;
| [[#GPUREG_0109|GPUREG_0109]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 010A&lt;br /&gt;
| [[#GPUREG_010A|GPUREG_010A]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 010B&lt;br /&gt;
| [[#GPUREG_010B|GPUREG_010B]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 010C&lt;br /&gt;
| [[#GPUREG_010C|GPUREG_010C]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 010D&lt;br /&gt;
| [[#GPUREG_010D|GPUREG_010D]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 010E&lt;br /&gt;
| [[#GPUREG_010E|GPUREG_010E]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 010F&lt;br /&gt;
| [[#GPUREG_010F|GPUREG_010F]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0110&lt;br /&gt;
| [[#GPUREG_0110|GPUREG_0110]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_COLOR_BUFFER_CLEAR0&lt;br /&gt;
|-&lt;br /&gt;
| 0111&lt;br /&gt;
| [[#GPUREG_0111|GPUREG_0111]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_COLOR_BUFFER_CLEAR1&lt;br /&gt;
|-&lt;br /&gt;
| 0112&lt;br /&gt;
| [[#GPUREG_COLORBUFFER_READ|GPUREG_COLORBUFFER_READ]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_COLOR_BUFFER_READ&lt;br /&gt;
|-&lt;br /&gt;
| 0113&lt;br /&gt;
| [[#GPUREG_COLORBUFFER_WRITE|GPUREG_COLORBUFFER_WRITE]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_COLOR_BUFFER_WRITE&lt;br /&gt;
|-&lt;br /&gt;
| 0114&lt;br /&gt;
| [[#GPUREG_DEPTHBUFFER_READ|GPUREG_DEPTHBUFFER_READ]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_DEPTH_STENCIL_READ&lt;br /&gt;
|-&lt;br /&gt;
| 0115&lt;br /&gt;
| [[#GPUREG_DEPTHBUFFER_WRITE|GPUREG_DEPTHBUFFER_WRITE]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_DEPTH_STENCIL_WRITE&lt;br /&gt;
|-&lt;br /&gt;
| 0116&lt;br /&gt;
| [[#GPUREG_DEPTHBUFFER_FORMAT|GPUREG_DEPTHBUFFER_FORMAT]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_RENDER_BUF_DEPTH_MODE&lt;br /&gt;
|-&lt;br /&gt;
| 0117&lt;br /&gt;
| [[#GPUREG_COLORBUFFER_FORMAT|GPUREG_COLORBUFFER_FORMAT]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_RENDER_BUF_COLOR_MODE&lt;br /&gt;
|-&lt;br /&gt;
| 0118&lt;br /&gt;
| [[#GPUREG_0118|GPUREG_0118]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_EARLY_DEPTH_TEST2&lt;br /&gt;
|-&lt;br /&gt;
| 0119&lt;br /&gt;
| [[#GPUREG_0119|GPUREG_0119]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 011A&lt;br /&gt;
| [[#GPUREG_011A|GPUREG_011A]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 011B&lt;br /&gt;
| [[#GPUREG_011B|GPUREG_011B]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_RENDER_BLOCK_FORMAT&lt;br /&gt;
|-&lt;br /&gt;
| 011C&lt;br /&gt;
| [[#GPUREG_DEPTHBUFFER_LOC|GPUREG_DEPTHBUFFER_LOC]]&lt;br /&gt;
|&lt;br /&gt;
|PICA_REG_RENDER_BUF_DEPTH_ADDR&lt;br /&gt;
|-&lt;br /&gt;
| 011D&lt;br /&gt;
| [[#GPUREG_COLORBUFFER_LOC|GPUREG_COLORBUFFER_LOC]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_RENDER_BUF_COLOR_ADDR&lt;br /&gt;
|-&lt;br /&gt;
| 011E&lt;br /&gt;
| [[#GPUREG_OUTBUFFER_DIM|GPUREG_OUTBUFFER_DIM]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_RENDER_BUF_RESOLUTION0&lt;br /&gt;
|-&lt;br /&gt;
| 011F&lt;br /&gt;
| [[#GPUREG_011F|GPUREG_011F]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0120&lt;br /&gt;
| [[#GPUREG_0120|GPUREG_0120]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_GAS_LIGHT_XY&lt;br /&gt;
|-&lt;br /&gt;
| 0121&lt;br /&gt;
| [[#GPUREG_0121|GPUREG_0121]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_GAS_LIGHT_Z&lt;br /&gt;
|-&lt;br /&gt;
| 0122&lt;br /&gt;
| [[#GPUREG_0122|GPUREG_0122]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_GAS_LIGHT_Z_COLOR&lt;br /&gt;
|-&lt;br /&gt;
| 0123&lt;br /&gt;
| [[#GPUREG_0123|GPUREG_0123]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_GAS_LUT_INDEX&lt;br /&gt;
|-&lt;br /&gt;
| 0124&lt;br /&gt;
| [[#GPUREG_0124|GPUREG_0124]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_GAS_LUT_DATA&lt;br /&gt;
|-&lt;br /&gt;
| 0125&lt;br /&gt;
| [[#GPUREG_0125|GPUREG_0125]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0126&lt;br /&gt;
| [[#GPUREG_0126|GPUREG_0126]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_GAS_DELTAZ_DEPTH&lt;br /&gt;
|-&lt;br /&gt;
| 0127&lt;br /&gt;
| [[#GPUREG_0127|GPUREG_0127]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0128&lt;br /&gt;
| [[#GPUREG_0128|GPUREG_0128]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0129&lt;br /&gt;
| [[#GPUREG_0129|GPUREG_0129]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 012A&lt;br /&gt;
| [[#GPUREG_012A|GPUREG_012A]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 012B&lt;br /&gt;
| [[#GPUREG_012B|GPUREG_012B]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 012C&lt;br /&gt;
| [[#GPUREG_012C|GPUREG_012C]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 012D&lt;br /&gt;
| [[#GPUREG_012D|GPUREG_012D]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 012E&lt;br /&gt;
| [[#GPUREG_012E|GPUREG_012E]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 012F&lt;br /&gt;
| [[#GPUREG_012F|GPUREG_012F]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0130&lt;br /&gt;
| [[#GPUREG_0130|GPUREG_0130]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_OP_SHADOW&lt;br /&gt;
|-&lt;br /&gt;
| 0131&lt;br /&gt;
| [[#GPUREG_0131|GPUREG_0131]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0132&lt;br /&gt;
| [[#GPUREG_0132|GPUREG_0132]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0133&lt;br /&gt;
| [[#GPUREG_0133|GPUREG_0133]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0134&lt;br /&gt;
| [[#GPUREG_0134|GPUREG_0134]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0135&lt;br /&gt;
| [[#GPUREG_0135|GPUREG_0135]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0136&lt;br /&gt;
| [[#GPUREG_0136|GPUREG_0136]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0137&lt;br /&gt;
| [[#GPUREG_0137|GPUREG_0137]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0138&lt;br /&gt;
| [[#GPUREG_0138|GPUREG_0138]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0139&lt;br /&gt;
| [[#GPUREG_0139|GPUREG_0139]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 013A&lt;br /&gt;
| [[#GPUREG_013A|GPUREG_013A]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 013B&lt;br /&gt;
| [[#GPUREG_013B|GPUREG_013B]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 013C&lt;br /&gt;
| [[#GPUREG_013C|GPUREG_013C]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 013D&lt;br /&gt;
| [[#GPUREG_013D|GPUREG_013D]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 013E&lt;br /&gt;
| [[#GPUREG_013E|GPUREG_013E]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 013F&lt;br /&gt;
| [[#GPUREG_013F|GPUREG_013F]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0140&lt;br /&gt;
| [[#GPUREG_0140|GPUREG_0140]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT0_SPECULAR0 / PICA_REG_FRAG_LIGHT_START&lt;br /&gt;
|-&lt;br /&gt;
| 0141&lt;br /&gt;
| [[#GPUREG_0141|GPUREG_0141]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT0_SPECULAR1&lt;br /&gt;
|-&lt;br /&gt;
| 0142&lt;br /&gt;
| [[#GPUREG_0142|GPUREG_0142]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT0_DIFFUSE&lt;br /&gt;
|-&lt;br /&gt;
| 0143&lt;br /&gt;
| [[#GPUREG_0143|GPUREG_0143]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT0_AMBIENT&lt;br /&gt;
|-&lt;br /&gt;
| 0144&lt;br /&gt;
| [[#GPUREG_0144|GPUREG_0144]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT0_POSITION_XY&lt;br /&gt;
|-&lt;br /&gt;
| 0145&lt;br /&gt;
| [[#GPUREG_0145|GPUREG_0145]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT0_POSITION_Z&lt;br /&gt;
|-&lt;br /&gt;
| 0146&lt;br /&gt;
| [[#GPUREG_0146|GPUREG_0146]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT0_SPOT_XY&lt;br /&gt;
|-&lt;br /&gt;
| 0147&lt;br /&gt;
| [[#GPUREG_0147|GPUREG_0147]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT0_SPOT_Z&lt;br /&gt;
|-&lt;br /&gt;
| 0148&lt;br /&gt;
| [[#GPUREG_0148|GPUREG_0148]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0149&lt;br /&gt;
| [[#GPUREG_0149|GPUREG_0149]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_FRAG_LIGHT0_TYPE&lt;br /&gt;
|-&lt;br /&gt;
| 014A&lt;br /&gt;
| [[#GPUREG_014A|GPUREG_014A]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT0_DIST_ATTN_BIAS&lt;br /&gt;
|-&lt;br /&gt;
| 014B&lt;br /&gt;
| [[#GPUREG_014B|GPUREG_014B]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT0_DIST_ATTN_SCALE&lt;br /&gt;
|-&lt;br /&gt;
| 014C&lt;br /&gt;
| [[#GPUREG_014C|GPUREG_014C]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 014D&lt;br /&gt;
| [[#GPUREG_014D|GPUREG_014D]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 014E&lt;br /&gt;
| [[#GPUREG_014E|GPUREG_014E]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 014F&lt;br /&gt;
| [[#GPUREG_014F|GPUREG_014F]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0150&lt;br /&gt;
| [[#GPUREG_0150|GPUREG_0150]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT1_SPECULAR0&lt;br /&gt;
|-&lt;br /&gt;
| 0151&lt;br /&gt;
| [[#GPUREG_0151|GPUREG_0151]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT1_SPECULAR1&lt;br /&gt;
|-&lt;br /&gt;
| 0152&lt;br /&gt;
| [[#GPUREG_0152|GPUREG_0152]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT1_DIFFUSE&lt;br /&gt;
|-&lt;br /&gt;
| 0153&lt;br /&gt;
| [[#GPUREG_0153|GPUREG_0153]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT1_AMBIENT&lt;br /&gt;
|-&lt;br /&gt;
| 0154&lt;br /&gt;
| [[#GPUREG_0154|GPUREG_0154]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT1_POSITION_XY&lt;br /&gt;
|-&lt;br /&gt;
| 0155&lt;br /&gt;
| [[#GPUREG_0155|GPUREG_0155]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT1_POSITION_Z&lt;br /&gt;
|-&lt;br /&gt;
| 0156&lt;br /&gt;
| [[#GPUREG_0156|GPUREG_0156]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT1_SPOT_XY&lt;br /&gt;
|-&lt;br /&gt;
| 0157&lt;br /&gt;
| [[#GPUREG_0157|GPUREG_0157]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT1_SPOT_Z&lt;br /&gt;
|-&lt;br /&gt;
| 0158&lt;br /&gt;
| [[#GPUREG_0158|GPUREG_0158]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0159&lt;br /&gt;
| [[#GPUREG_0159|GPUREG_0159]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT1_TYPE&lt;br /&gt;
|-&lt;br /&gt;
| 015A&lt;br /&gt;
| [[#GPUREG_015A|GPUREG_015A]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT1_DIST_ATTN_BIAS&lt;br /&gt;
|-&lt;br /&gt;
| 015B&lt;br /&gt;
| [[#GPUREG_015B|GPUREG_015B]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT1_DIST_ATTN_SCALE&lt;br /&gt;
|-&lt;br /&gt;
| 015C&lt;br /&gt;
| [[#GPUREG_015C|GPUREG_015C]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 015D&lt;br /&gt;
| [[#GPUREG_015D|GPUREG_015D]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 015E&lt;br /&gt;
| [[#GPUREG_015E|GPUREG_015E]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 015F&lt;br /&gt;
| [[#GPUREG_015F|GPUREG_015F]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0160&lt;br /&gt;
| [[#GPUREG_0160|GPUREG_0160]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT2_SPECULAR0&lt;br /&gt;
|-&lt;br /&gt;
| 0161&lt;br /&gt;
| [[#GPUREG_0161|GPUREG_0161]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT2_SPECULAR1&lt;br /&gt;
|-&lt;br /&gt;
| 0162&lt;br /&gt;
| [[#GPUREG_0162|GPUREG_0162]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT2_DIFFUSE&lt;br /&gt;
|-&lt;br /&gt;
| 0163&lt;br /&gt;
| [[#GPUREG_0163|GPUREG_0163]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT2_AMBIENT&lt;br /&gt;
|-&lt;br /&gt;
| 0164&lt;br /&gt;
| [[#GPUREG_0164|GPUREG_0164]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT2_POSITION_XY&lt;br /&gt;
|-&lt;br /&gt;
| 0165&lt;br /&gt;
| [[#GPUREG_0165|GPUREG_0165]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT2_POSITION_Z&lt;br /&gt;
|-&lt;br /&gt;
| 0166&lt;br /&gt;
| [[#GPUREG_0166|GPUREG_0166]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT2_SPOT_XY&lt;br /&gt;
|-&lt;br /&gt;
| 0167&lt;br /&gt;
| [[#GPUREG_0167|GPUREG_0167]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT2_SPOT_Z&lt;br /&gt;
|-&lt;br /&gt;
| 0168&lt;br /&gt;
| [[#GPUREG_0168|GPUREG_0168]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0169&lt;br /&gt;
| [[#GPUREG_0169|GPUREG_0169]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT2_TYPE&lt;br /&gt;
|-&lt;br /&gt;
| 016A&lt;br /&gt;
| [[#GPUREG_016A|GPUREG_016A]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT2_DIST_ATTN_BIAS&lt;br /&gt;
|-&lt;br /&gt;
| 016B&lt;br /&gt;
| [[#GPUREG_016B|GPUREG_016B]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT2_DIST_ATTN_SCALE&lt;br /&gt;
|-&lt;br /&gt;
| 016C&lt;br /&gt;
| [[#GPUREG_016C|GPUREG_016C]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 016D&lt;br /&gt;
| [[#GPUREG_016D|GPUREG_016D]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 016E&lt;br /&gt;
| [[#GPUREG_016E|GPUREG_016E]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 016F&lt;br /&gt;
| [[#GPUREG_016F|GPUREG_016F]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0170&lt;br /&gt;
| [[#GPUREG_0170|GPUREG_0170]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT3_SPECULAR0&lt;br /&gt;
|-&lt;br /&gt;
| 0171&lt;br /&gt;
| [[#GPUREG_0171|GPUREG_0171]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT3_SPECULAR1&lt;br /&gt;
|-&lt;br /&gt;
| 0172&lt;br /&gt;
| [[#GPUREG_0172|GPUREG_0172]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT3_DIFFUSE&lt;br /&gt;
|-&lt;br /&gt;
| 0173&lt;br /&gt;
| [[#GPUREG_0173|GPUREG_0173]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT3_AMBIENT&lt;br /&gt;
|-&lt;br /&gt;
| 0174&lt;br /&gt;
| [[#GPUREG_0174|GPUREG_0174]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT3_POSITION_XY&lt;br /&gt;
|-&lt;br /&gt;
| 0175&lt;br /&gt;
| [[#GPUREG_0175|GPUREG_0175]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT3_POSITION_Z&lt;br /&gt;
|-&lt;br /&gt;
| 0176&lt;br /&gt;
| [[#GPUREG_0176|GPUREG_0176]]&lt;br /&gt;
|? &lt;br /&gt;
|PICA_REG_FRAG_LIGHT3_SPOT_XY&lt;br /&gt;
|-&lt;br /&gt;
| 0177&lt;br /&gt;
| [[#GPUREG_0177|GPUREG_0177]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT3_SPOT_Z&lt;br /&gt;
|-&lt;br /&gt;
| 0178&lt;br /&gt;
| [[#GPUREG_0178|GPUREG_0178]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0179&lt;br /&gt;
| [[#GPUREG_0179|GPUREG_0179]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT3_TYPE&lt;br /&gt;
|-&lt;br /&gt;
| 017A&lt;br /&gt;
| [[#GPUREG_017A|GPUREG_017A]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT3_DIST_ATTN_BIAS&lt;br /&gt;
|-&lt;br /&gt;
| 017B&lt;br /&gt;
| [[#GPUREG_017B|GPUREG_017B]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT3_DIST_ATTN_SCALE&lt;br /&gt;
|-&lt;br /&gt;
| 017C&lt;br /&gt;
| [[#GPUREG_017C|GPUREG_017C]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 017D&lt;br /&gt;
| [[#GPUREG_017D|GPUREG_017D]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 017E&lt;br /&gt;
| [[#GPUREG_017E|GPUREG_017E]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 017F&lt;br /&gt;
| [[#GPUREG_017F|GPUREG_017F]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0180&lt;br /&gt;
| [[#GPUREG_0180|GPUREG_0180]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT4_SPECULAR0&lt;br /&gt;
|-&lt;br /&gt;
| 0181&lt;br /&gt;
| [[#GPUREG_0181|GPUREG_0181]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT4_SPECULAR1&lt;br /&gt;
|-&lt;br /&gt;
| 0182&lt;br /&gt;
| [[#GPUREG_0182|GPUREG_0182]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT4_DIFFUSE&lt;br /&gt;
|-&lt;br /&gt;
| 0183&lt;br /&gt;
| [[#GPUREG_0183|GPUREG_0183]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT4_AMBIENT&lt;br /&gt;
|-&lt;br /&gt;
| 0184&lt;br /&gt;
| [[#GPUREG_0184|GPUREG_0184]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT4_POSITION_XY&lt;br /&gt;
|-&lt;br /&gt;
| 0185&lt;br /&gt;
| [[#GPUREG_0185|GPUREG_0185]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT4_POSITION_Z&lt;br /&gt;
|-&lt;br /&gt;
| 0186&lt;br /&gt;
| [[#GPUREG_0186|GPUREG_0186]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT4_SPOT_XY&lt;br /&gt;
|-&lt;br /&gt;
| 0187&lt;br /&gt;
| [[#GPUREG_0187|GPUREG_0187]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT4_SPOT_Z&lt;br /&gt;
|-&lt;br /&gt;
| 0188&lt;br /&gt;
| [[#GPUREG_0188|GPUREG_0188]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0189&lt;br /&gt;
| [[#GPUREG_0189|GPUREG_0189]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT4_TYPE&lt;br /&gt;
|-&lt;br /&gt;
| 018A&lt;br /&gt;
| [[#GPUREG_018A|GPUREG_018A]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT4_DIST_ATTN_BIAS&lt;br /&gt;
|-&lt;br /&gt;
| 018B&lt;br /&gt;
| [[#GPUREG_018B|GPUREG_018B]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT4_DIST_ATTN_SCALE&lt;br /&gt;
|-&lt;br /&gt;
| 018C&lt;br /&gt;
| [[#GPUREG_018C|GPUREG_018C]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 018D&lt;br /&gt;
| [[#GPUREG_018D|GPUREG_018D]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 018E&lt;br /&gt;
| [[#GPUREG_018E|GPUREG_018E]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 018F&lt;br /&gt;
| [[#GPUREG_018F|GPUREG_018F]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0190&lt;br /&gt;
| [[#GPUREG_0190|GPUREG_0190]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT5_SPECULAR0&lt;br /&gt;
|-&lt;br /&gt;
| 0191&lt;br /&gt;
| [[#GPUREG_0191|GPUREG_0191]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT5_SPECULAR1&lt;br /&gt;
|-&lt;br /&gt;
| 0192&lt;br /&gt;
| [[#GPUREG_0192|GPUREG_0192]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT5_DIFFUSE&lt;br /&gt;
|-&lt;br /&gt;
| 0193&lt;br /&gt;
| [[#GPUREG_0193|GPUREG_0193]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT5_AMBIENT&lt;br /&gt;
|-&lt;br /&gt;
| 0194&lt;br /&gt;
| [[#GPUREG_0194|GPUREG_0194]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT5_POSITION_XY&lt;br /&gt;
|-&lt;br /&gt;
| 0195&lt;br /&gt;
| [[#GPUREG_0195|GPUREG_0195]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT5_POSITION_Z&lt;br /&gt;
|-&lt;br /&gt;
| 0196&lt;br /&gt;
| [[#GPUREG_0196|GPUREG_0196]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT5_SPOT_XY&lt;br /&gt;
|-&lt;br /&gt;
| 0197&lt;br /&gt;
| [[#GPUREG_0197|GPUREG_0197]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT5_SPOT_Z&lt;br /&gt;
|-&lt;br /&gt;
| 0198&lt;br /&gt;
| [[#GPUREG_0198|GPUREG_0198]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0199&lt;br /&gt;
| [[#GPUREG_0199|GPUREG_0199]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT5_TYPE&lt;br /&gt;
|-&lt;br /&gt;
| 019A&lt;br /&gt;
| [[#GPUREG_019A|GPUREG_019A]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 019B&lt;br /&gt;
| [[#GPUREG_019B|GPUREG_019B]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 019C&lt;br /&gt;
| [[#GPUREG_019C|GPUREG_019C]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 019D&lt;br /&gt;
| [[#GPUREG_019D|GPUREG_019D]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 019E&lt;br /&gt;
| [[#GPUREG_019E|GPUREG_019E]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 019F&lt;br /&gt;
| [[#GPUREG_019F|GPUREG_019F]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01A0&lt;br /&gt;
| [[#GPUREG_01A0|GPUREG_01A0]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT6_SPECULAR0&lt;br /&gt;
|-&lt;br /&gt;
| 01A1&lt;br /&gt;
| [[#GPUREG_01A1|GPUREG_01A1]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT6_SPECULAR1&lt;br /&gt;
|-&lt;br /&gt;
| 01A2&lt;br /&gt;
| [[#GPUREG_01A2|GPUREG_01A2]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_FRAG_LIGHT6_DIFFUSE&lt;br /&gt;
|-&lt;br /&gt;
| 01A3&lt;br /&gt;
| [[#GPUREG_01A3|GPUREG_01A3]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_FRAG_LIGHT6_AMBIENT&lt;br /&gt;
|-&lt;br /&gt;
| 01A4&lt;br /&gt;
| [[#GPUREG_01A4|GPUREG_01A4]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_FRAG_LIGHT6_POSITION_XY&lt;br /&gt;
|-&lt;br /&gt;
| 01A5&lt;br /&gt;
| [[#GPUREG_01A5|GPUREG_01A5]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_FRAG_LIGHT6_POSITION_Z&lt;br /&gt;
|-&lt;br /&gt;
| 01A6&lt;br /&gt;
| [[#GPUREG_01A6|GPUREG_01A6]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT6_SPOT_XY&lt;br /&gt;
|-&lt;br /&gt;
| 01A7&lt;br /&gt;
| [[#GPUREG_01A7|GPUREG_01A7]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT6_SPOT_Z&lt;br /&gt;
|-&lt;br /&gt;
| 01A8&lt;br /&gt;
| [[#GPUREG_01A8|GPUREG_01A8]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01A9&lt;br /&gt;
| [[#GPUREG_01A9|GPUREG_01A9]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT6_TYPE&lt;br /&gt;
|-&lt;br /&gt;
| 01AA&lt;br /&gt;
| [[#GPUREG_01AA|GPUREG_01AA]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01AB&lt;br /&gt;
| [[#GPUREG_01AB|GPUREG_01AB]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01AC&lt;br /&gt;
| [[#GPUREG_01AC|GPUREG_01AC]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01AD&lt;br /&gt;
| [[#GPUREG_01AD|GPUREG_01AD]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01AE&lt;br /&gt;
| [[#GPUREG_01AE|GPUREG_01AE]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01AF&lt;br /&gt;
| [[#GPUREG_01AF|GPUREG_01AF]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01B0&lt;br /&gt;
| [[#GPUREG_01B0|GPUREG_01B0]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT7_SPECULAR0&lt;br /&gt;
|-&lt;br /&gt;
| 01B1&lt;br /&gt;
| [[#GPUREG_01B1|GPUREG_01B1]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT7_SPECULAR1&lt;br /&gt;
|-&lt;br /&gt;
| 01B2&lt;br /&gt;
| [[#GPUREG_01B2|GPUREG_01B2]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT7_DIFFUSE&lt;br /&gt;
|-&lt;br /&gt;
| 01B3&lt;br /&gt;
| [[#GPUREG_01B3|GPUREG_01B3]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT7_AMBIENT&lt;br /&gt;
|-&lt;br /&gt;
| 01B4&lt;br /&gt;
| [[#GPUREG_01B4|GPUREG_01B4]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT7_POSITION_XY&lt;br /&gt;
|-&lt;br /&gt;
| 01B5&lt;br /&gt;
| [[#GPUREG_01B5|GPUREG_01B5]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT7_POSITION_Z&lt;br /&gt;
|-&lt;br /&gt;
| 01B6&lt;br /&gt;
| [[#GPUREG_01B6|GPUREG_01B6]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT7_SPOT_XY&lt;br /&gt;
|-&lt;br /&gt;
| 01B7&lt;br /&gt;
| [[#GPUREG_01B7|GPUREG_01B7]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT7_SPOT_Z&lt;br /&gt;
|-&lt;br /&gt;
| 01B8&lt;br /&gt;
| [[#GPUREG_01B8|GPUREG_01B8]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01B9&lt;br /&gt;
| [[#GPUREG_01B9|GPUREG_01B9]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT7_TYPE&lt;br /&gt;
|-&lt;br /&gt;
| 01BA&lt;br /&gt;
| [[#GPUREG_01BA|GPUREG_01BA]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01BB&lt;br /&gt;
| [[#GPUREG_01BB|GPUREG_01BB]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01BC&lt;br /&gt;
| [[#GPUREG_01BC|GPUREG_01BC]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01BD&lt;br /&gt;
| [[#GPUREG_01BD|GPUREG_01BD]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01BE&lt;br /&gt;
| [[#GPUREG_01BE|GPUREG_01BE]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01BF&lt;br /&gt;
| [[#GPUREG_01BF|GPUREG_01BF]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01C0&lt;br /&gt;
| [[#GPUREG_01C0|GPUREG_01C0]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT_AMBIENT&lt;br /&gt;
|-&lt;br /&gt;
| 01C1&lt;br /&gt;
| [[#GPUREG_01C1|GPUREG_01C1]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01C2&lt;br /&gt;
| [[#GPUREG_01C2|GPUREG_01C2]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT_SRC_NUM&lt;br /&gt;
|-&lt;br /&gt;
| 01C3&lt;br /&gt;
| [[#GPUREG_01C3|GPUREG_01C3]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT_FUNC_MODE0&lt;br /&gt;
|-&lt;br /&gt;
| 01C4&lt;br /&gt;
| [[#GPUREG_01C4|GPUREG_01C4]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT_FUNC_MODE1&lt;br /&gt;
|-&lt;br /&gt;
| 01C5&lt;br /&gt;
| [[#GPUREG_01C5|GPUREG_01C5]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT_LUT&lt;br /&gt;
|-&lt;br /&gt;
| 01C6&lt;br /&gt;
| [[#GPUREG_01C6|GPUREG_01C6]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT_EN1&lt;br /&gt;
|-&lt;br /&gt;
| 01C7&lt;br /&gt;
| [[#GPUREG_01C7|GPUREG_01C7]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01C8&lt;br /&gt;
| [[#GPUREG_01C8|GPUREG_01C8]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT_LUT_DATA0&lt;br /&gt;
|-&lt;br /&gt;
| 01C9&lt;br /&gt;
| [[#GPUREG_01C9|GPUREG_01C9]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT_LUT_DATA1&lt;br /&gt;
|-&lt;br /&gt;
| 01CA&lt;br /&gt;
| [[#GPUREG_01CA|GPUREG_01CA]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT_LUT_DATA2&lt;br /&gt;
|-&lt;br /&gt;
| 01CB&lt;br /&gt;
| [[#GPUREG_01CB|GPUREG_01CB]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT_LUT_DATA3&lt;br /&gt;
|-&lt;br /&gt;
| 01CC&lt;br /&gt;
| [[#GPUREG_01CC|GPUREG_01CC]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT_LUT_DATA4&lt;br /&gt;
|-&lt;br /&gt;
| 01CD&lt;br /&gt;
| [[#GPUREG_01CD|GPUREG_01CD]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT_LUT_DATA8&lt;br /&gt;
|-&lt;br /&gt;
| 01CE&lt;br /&gt;
| [[#GPUREG_01CE|GPUREG_01CE]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT_LUT_DATA6&lt;br /&gt;
|-&lt;br /&gt;
| 01CF&lt;br /&gt;
| [[#GPUREG_01CF|GPUREG_01CF]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT_LUT_DATA7&lt;br /&gt;
|-&lt;br /&gt;
| 01D0&lt;br /&gt;
| [[#GPUREG_01D0|GPUREG_01D0]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT_ABSLUTINPUT&lt;br /&gt;
|-&lt;br /&gt;
| 01D1&lt;br /&gt;
| [[#GPUREG_01D1|GPUREG_01D1]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT_LUTINPUT&lt;br /&gt;
|-&lt;br /&gt;
| 01D2&lt;br /&gt;
| [[#GPUREG_01D2|GPUREG_01D2]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT_LUTSCALE&lt;br /&gt;
|-&lt;br /&gt;
| 01D3&lt;br /&gt;
| [[#GPUREG_01D3|GPUREG_01D3]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01D4&lt;br /&gt;
| [[#GPUREG_01D4|GPUREG_01D4]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01D5&lt;br /&gt;
| [[#GPUREG_01D5|GPUREG_01D5]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01D6&lt;br /&gt;
| [[#GPUREG_01D6|GPUREG_01D6]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01D7&lt;br /&gt;
| [[#GPUREG_01D7|GPUREG_01D7]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01D8&lt;br /&gt;
| [[#GPUREG_01D8|GPUREG_01D8]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01D9&lt;br /&gt;
| [[#GPUREG_01D9|GPUREG_01D9]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_FRAG_LIGHT_SRC_EN_ID&lt;br /&gt;
|-&lt;br /&gt;
| 01DA&lt;br /&gt;
| [[#GPUREG_01DA|GPUREG_01DA]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01DB&lt;br /&gt;
| [[#GPUREG_01DB|GPUREG_01DB]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01DC&lt;br /&gt;
| [[#GPUREG_01DC|GPUREG_01DC]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01DD&lt;br /&gt;
| [[#GPUREG_01DD|GPUREG_01DD]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01DE&lt;br /&gt;
| [[#GPUREG_01DE|GPUREG_01DE]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01DF&lt;br /&gt;
| [[#GPUREG_01DF|GPUREG_01DF]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01E0&lt;br /&gt;
| [[#GPUREG_01E0|GPUREG_01E0]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01E1&lt;br /&gt;
| [[#GPUREG_01E1|GPUREG_01E1]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01E2&lt;br /&gt;
| [[#GPUREG_01E2|GPUREG_01E2]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01E3&lt;br /&gt;
| [[#GPUREG_01E3|GPUREG_01E3]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01E4&lt;br /&gt;
| [[#GPUREG_01E4|GPUREG_01E4]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01E5&lt;br /&gt;
| [[#GPUREG_01E5|GPUREG_01E5]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01E6&lt;br /&gt;
| [[#GPUREG_01E6|GPUREG_01E6]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01E7&lt;br /&gt;
| [[#GPUREG_01E7|GPUREG_01E7]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01E8&lt;br /&gt;
| [[#GPUREG_01E8|GPUREG_01E8]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01E9&lt;br /&gt;
| [[#GPUREG_01E9|GPUREG_01E9]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01EA&lt;br /&gt;
| [[#GPUREG_01EA|GPUREG_01EA]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01EB&lt;br /&gt;
| [[#GPUREG_01EB|GPUREG_01EB]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01EC&lt;br /&gt;
| [[#GPUREG_01EC|GPUREG_01EC]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01ED&lt;br /&gt;
| [[#GPUREG_01ED|GPUREG_01ED]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01EE&lt;br /&gt;
| [[#GPUREG_01EE|GPUREG_01EE]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01EF&lt;br /&gt;
| [[#GPUREG_01EF|GPUREG_01EF]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01F0&lt;br /&gt;
| [[#GPUREG_01F0|GPUREG_01F0]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01F1&lt;br /&gt;
| [[#GPUREG_01F1|GPUREG_01F1]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01F2&lt;br /&gt;
| [[#GPUREG_01F2|GPUREG_01F2]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01F3&lt;br /&gt;
| [[#GPUREG_01F3|GPUREG_01F3]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01F4&lt;br /&gt;
| [[#GPUREG_01F4|GPUREG_01F4]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01F5&lt;br /&gt;
| [[#GPUREG_01F5|GPUREG_01F5]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01F6&lt;br /&gt;
| [[#GPUREG_01F6|GPUREG_01F6]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01F7&lt;br /&gt;
| [[#GPUREG_01F7|GPUREG_01F7]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01F8&lt;br /&gt;
| [[#GPUREG_01F8|GPUREG_01F8]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01F9&lt;br /&gt;
| [[#GPUREG_01F9|GPUREG_01F9]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01FA&lt;br /&gt;
| [[#GPUREG_01FA|GPUREG_01FA]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01FB&lt;br /&gt;
| [[#GPUREG_01FB|GPUREG_01FB]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01FC&lt;br /&gt;
| [[#GPUREG_01FC|GPUREG_01FC]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01FD&lt;br /&gt;
| [[#GPUREG_01FD|GPUREG_01FD]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01FE&lt;br /&gt;
| [[#GPUREG_01FE|GPUREG_01FE]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 01FF&lt;br /&gt;
| [[#GPUREG_01FF|GPUREG_01FF]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=3 | Geometry pipeline registers&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0200&lt;br /&gt;
| [[#GPUREG_ATTRIBBUFFERS_LOC|GPUREG_ATTRIBBUFFERS_LOC]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_VTX_ATTR_ARRAYS_BASE_ADDR&lt;br /&gt;
|-&lt;br /&gt;
| 0201&lt;br /&gt;
| [[#GPUREG_ATTRIBBUFFERS_FORMAT_LOW|GPUREG_ATTRIBBUFFERS_FORMAT_LOW]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_VTX_ATTR_ARRAYS0&lt;br /&gt;
|-&lt;br /&gt;
| 0202&lt;br /&gt;
| [[#GPUREG_ATTRIBBUFFERS_FORMAT_HIGH|GPUREG_ATTRIBBUFFERS_FORMAT_HIGH]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_VTX_ATTR_ARRAYS1&lt;br /&gt;
|-&lt;br /&gt;
| 0203&lt;br /&gt;
| [[#GPUREG_ATTRIBBUFFER0_CONFIG0|GPUREG_ATTRIBBUFFER0_CONFIG0]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_LOAD_ARRAY0_ATTR_OFFSET&lt;br /&gt;
|-&lt;br /&gt;
| 0204&lt;br /&gt;
| [[#GPUREG_ATTRIBBUFFER0_CONFIG1|GPUREG_ATTRIBBUFFER0_CONFIG1]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_LOAD_ARRAY0_ELEMENT0&lt;br /&gt;
|-&lt;br /&gt;
| 0205&lt;br /&gt;
| [[#GPUREG_ATTRIBBUFFER0_CONFIG2|GPUREG_ATTRIBBUFFER0_CONFIG2]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_LOAD_ARRAY0_ELEMENT1&lt;br /&gt;
|-&lt;br /&gt;
| 0206&lt;br /&gt;
| [[#GPUREG_ATTRIBBUFFER1_CONFIG0|GPUREG_ATTRIBBUFFER1_CONFIG0]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0207&lt;br /&gt;
| [[#GPUREG_ATTRIBBUFFER1_CONFIG1|GPUREG_ATTRIBBUFFER1_CONFIG1]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0208&lt;br /&gt;
| [[#GPUREG_ATTRIBBUFFER1_CONFIG2|GPUREG_ATTRIBBUFFER1_CONFIG2]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0209&lt;br /&gt;
| [[#GPUREG_ATTRIBBUFFER2_CONFIG0|GPUREG_ATTRIBBUFFER2_CONFIG0]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 020A&lt;br /&gt;
| [[#GPUREG_ATTRIBBUFFER2_CONFIG1|GPUREG_ATTRIBBUFFER2_CONFIG1]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 020B&lt;br /&gt;
| [[#GPUREG_ATTRIBBUFFER2_CONFIG2|GPUREG_ATTRIBBUFFER2_CONFIG2]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 020C&lt;br /&gt;
| [[#GPUREG_ATTRIBBUFFER3_CONFIG0|GPUREG_ATTRIBBUFFER3_CONFIG0]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 020D&lt;br /&gt;
| [[#GPUREG_ATTRIBBUFFER3_CONFIG1|GPUREG_ATTRIBBUFFER3_CONFIG1]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 020E&lt;br /&gt;
| [[#GPUREG_ATTRIBBUFFER3_CONFIG2|GPUREG_ATTRIBBUFFER3_CONFIG2]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 020F&lt;br /&gt;
| [[#GPUREG_ATTRIBBUFFER4_CONFIG0|GPUREG_ATTRIBBUFFER4_CONFIG0]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0210&lt;br /&gt;
| [[#GPUREG_ATTRIBBUFFER4_CONFIG1|GPUREG_ATTRIBBUFFER4_CONFIG1]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0211&lt;br /&gt;
| [[#GPUREG_ATTRIBBUFFER4_CONFIG2|GPUREG_ATTRIBBUFFER4_CONFIG2]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0212&lt;br /&gt;
| [[#GPUREG_ATTRIBBUFFER5_CONFIG0|GPUREG_ATTRIBBUFFER5_CONFIG0]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0213&lt;br /&gt;
| [[#GPUREG_ATTRIBBUFFER5_CONFIG1|GPUREG_ATTRIBBUFFER5_CONFIG1]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0214&lt;br /&gt;
| [[#GPUREG_ATTRIBBUFFER5_CONFIG2|GPUREG_ATTRIBBUFFER5_CONFIG2]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0215&lt;br /&gt;
| [[#GPUREG_ATTRIBBUFFER6_CONFIG0|GPUREG_ATTRIBBUFFER6_CONFIG0]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0216&lt;br /&gt;
| [[#GPUREG_ATTRIBBUFFER6_CONFIG1|GPUREG_ATTRIBBUFFER6_CONFIG1]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0217&lt;br /&gt;
| [[#GPUREG_ATTRIBBUFFER6_CONFIG2|GPUREG_ATTRIBBUFFER6_CONFIG2]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0218&lt;br /&gt;
| [[#GPUREG_ATTRIBBUFFER7_CONFIG0|GPUREG_ATTRIBBUFFER7_CONFIG0]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0219&lt;br /&gt;
| [[#GPUREG_ATTRIBBUFFER7_CONFIG1|GPUREG_ATTRIBBUFFER7_CONFIG1]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 021A&lt;br /&gt;
| [[#GPUREG_ATTRIBBUFFER7_CONFIG2|GPUREG_ATTRIBBUFFER7_CONFIG2]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 021B&lt;br /&gt;
| [[#GPUREG_ATTRIBBUFFER8_CONFIG0|GPUREG_ATTRIBBUFFER8_CONFIG0]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 021C&lt;br /&gt;
| [[#GPUREG_ATTRIBBUFFER8_CONFIG1|GPUREG_ATTRIBBUFFER8_CONFIG1]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 021D&lt;br /&gt;
| [[#GPUREG_ATTRIBBUFFER8_CONFIG2|GPUREG_ATTRIBBUFFER8_CONFIG2]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 021E&lt;br /&gt;
| [[#GPUREG_ATTRIBBUFFER9_CONFIG0|GPUREG_ATTRIBBUFFER9_CONFIG0]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 021F&lt;br /&gt;
| [[#GPUREG_ATTRIBBUFFER9_CONFIG1|GPUREG_ATTRIBBUFFER9_CONFIG1]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0220&lt;br /&gt;
| [[#GPUREG_ATTRIBBUFFER9_CONFIG2|GPUREG_ATTRIBBUFFER9_CONFIG2]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0221&lt;br /&gt;
| [[#GPUREG_ATTRIBBUFFERA_CONFIG0|GPUREG_ATTRIBBUFFERA_CONFIG0]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0222&lt;br /&gt;
| [[#GPUREG_ATTRIBBUFFERA_CONFIG1|GPUREG_ATTRIBBUFFERA_CONFIG1]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0223&lt;br /&gt;
| [[#GPUREG_ATTRIBBUFFERA_CONFIG2|GPUREG_ATTRIBBUFFERA_CONFIG2]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0224&lt;br /&gt;
| [[#GPUREG_ATTRIBBUFFERB_CONFIG0|GPUREG_ATTRIBBUFFERB_CONFIG0]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0225&lt;br /&gt;
| [[#GPUREG_ATTRIBBUFFERB_CONFIG1|GPUREG_ATTRIBBUFFERB_CONFIG1]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0226&lt;br /&gt;
| [[#GPUREG_ATTRIBBUFFERB_CONFIG2|GPUREG_ATTRIBBUFFERB_CONFIG2]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0227&lt;br /&gt;
| [[#GPUREG_INDEXBUFFER_CONFIG|GPUREG_INDEXBUFFER_CONFIG]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_INDEX_ARRAY_ADDR_OFFSET&lt;br /&gt;
|-&lt;br /&gt;
| 0228&lt;br /&gt;
| [[#GPUREG_NUMVERTICES|GPUREG_NUMVERTICES]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_DRAW_VERTEX_NUM&lt;br /&gt;
|-&lt;br /&gt;
| 0229&lt;br /&gt;
| [[#GPUREG_GEOSTAGE_CONFIG|GPUREG_GEOSTAGE_CONFIG]]&lt;br /&gt;
| ?&lt;br /&gt;
|PICA_REG_DRAW_MODE0&lt;br /&gt;
|-&lt;br /&gt;
| 022A&lt;br /&gt;
| [[#GPUREG_022A|GPUREG_022A]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_DRAW_VERTEX_OFFSET&lt;br /&gt;
|-&lt;br /&gt;
| 022B&lt;br /&gt;
| [[#GPUREG_022B|GPUREG_022B]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 022C&lt;br /&gt;
| [[#GPUREG_022C|GPUREG_022C]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 022D&lt;br /&gt;
| [[#GPUREG_022D|GPUREG_022D]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 022E&lt;br /&gt;
| [[#GPUREG_DRAWARRAYS|GPUREG_DRAWARRAYS]]&lt;br /&gt;
|&lt;br /&gt;
|PICA_REG_START_DRAW_ARRAY&lt;br /&gt;
|-&lt;br /&gt;
| 022F&lt;br /&gt;
| [[#GPUREG_DRAWELEMENTS|GPUREG_DRAWELEMENTS]]&lt;br /&gt;
|&lt;br /&gt;
|PICA_REG_START_DRAW_ELEMENT&lt;br /&gt;
|-&lt;br /&gt;
| 0230&lt;br /&gt;
| [[#GPUREG_0230|GPUREG_0230]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0231&lt;br /&gt;
| [[#GPUREG_0231|GPUREG_0231]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_VTX_FUNC&lt;br /&gt;
|-&lt;br /&gt;
| 0232&lt;br /&gt;
| [[#GPUREG_0232|GPUREG_0232]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_VS_FIXED_ATTR&lt;br /&gt;
|-&lt;br /&gt;
| 0233&lt;br /&gt;
| [[#GPUREG_0233|GPUREG_0233]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_VS_FIXED_ATTR_DATA0&lt;br /&gt;
|-&lt;br /&gt;
| 0234&lt;br /&gt;
| [[#GPUREG_0234|GPUREG_0234]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_VS_FIXED_ATTR_DATA1&lt;br /&gt;
|-&lt;br /&gt;
| 0235&lt;br /&gt;
| [[#GPUREG_0235|GPUREG_0235]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_VS_FIXED_ATTR_DATA2&lt;br /&gt;
|-&lt;br /&gt;
| 0236&lt;br /&gt;
| [[#GPUREG_0236|GPUREG_0236]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0237&lt;br /&gt;
| [[#GPUREG_0237|GPUREG_0237]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0238&lt;br /&gt;
| [[#GPUREG_0238|GPUREG_0238]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0239&lt;br /&gt;
| [[#GPUREG_0239|GPUREG_0239]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 023A&lt;br /&gt;
| [[#GPUREG_023A|GPUREG_023A]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 023B&lt;br /&gt;
| [[#GPUREG_023B|GPUREG_023B]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 023C&lt;br /&gt;
| [[#GPUREG_023C|GPUREG_023C]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 023D&lt;br /&gt;
| [[#GPUREG_023D|GPUREG_023D]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 023E&lt;br /&gt;
| [[#GPUREG_023E|GPUREG_023E]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 023F&lt;br /&gt;
| [[#GPUREG_023F|GPUREG_023F]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0240&lt;br /&gt;
| [[#GPUREG_0240|GPUREG_0240]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0241&lt;br /&gt;
| [[#GPUREG_0241|GPUREG_0241]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0242&lt;br /&gt;
| [[#GPUREG_0242|GPUREG_0242]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_VS_ATTR_NUM1&lt;br /&gt;
|-&lt;br /&gt;
| 0243&lt;br /&gt;
| [[#GPUREG_0243|GPUREG_0243]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0244&lt;br /&gt;
| [[#GPUREG_0244|GPUREG_0244]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_VS_COM_MODE&lt;br /&gt;
|-&lt;br /&gt;
| 0245&lt;br /&gt;
| [[#GPUREG_0245|GPUREG_0245]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_START_DRAW_FUNC0&lt;br /&gt;
|-&lt;br /&gt;
| 0246&lt;br /&gt;
| [[#GPUREG_0246|GPUREG_0246]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0247&lt;br /&gt;
| [[#GPUREG_0247|GPUREG_0247]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0248&lt;br /&gt;
| [[#GPUREG_0248|GPUREG_0248]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0249&lt;br /&gt;
| [[#GPUREG_0249|GPUREG_0249]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 024A&lt;br /&gt;
| [[#GPUREG_024A|GPUREG_024A]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_VS_OUT_REG_NUM1&lt;br /&gt;
|-&lt;br /&gt;
| 024B&lt;br /&gt;
| [[#GPUREG_024B|GPUREG_024B]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 024C&lt;br /&gt;
| [[#GPUREG_024C|GPUREG_024C]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 024D&lt;br /&gt;
| [[#GPUREG_024D|GPUREG_024D]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 024E&lt;br /&gt;
| [[#GPUREG_024E|GPUREG_024E]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 024F&lt;br /&gt;
| [[#GPUREG_024F|GPUREG_024F]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0250&lt;br /&gt;
| [[#GPUREG_0250|GPUREG_0250]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0251&lt;br /&gt;
| [[#GPUREG_0251|GPUREG_0251]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_VS_OUT_REG_NUM2&lt;br /&gt;
|-&lt;br /&gt;
| 0252&lt;br /&gt;
| [[#GPUREG_0252|GPUREG_0252]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_GS_MISC_REG0&lt;br /&gt;
|-&lt;br /&gt;
| 0253&lt;br /&gt;
| [[#GPUREG_0253|GPUREG_0253]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_DRAW_MODE1&lt;br /&gt;
|-&lt;br /&gt;
| 0254&lt;br /&gt;
| [[#GPUREG_0254|GPUREG_0254]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_GS_MISC_REG1&lt;br /&gt;
|-&lt;br /&gt;
| 0255&lt;br /&gt;
| [[#GPUREG_0255|GPUREG_0255]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0256&lt;br /&gt;
| [[#GPUREG_0256|GPUREG_0256]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0257&lt;br /&gt;
| [[#GPUREG_0257|GPUREG_0257]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0258&lt;br /&gt;
| [[#GPUREG_0258|GPUREG_0258]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0259&lt;br /&gt;
| [[#GPUREG_0259|GPUREG_0259]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 025A&lt;br /&gt;
| [[#GPUREG_025A|GPUREG_025A]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 025B&lt;br /&gt;
| [[#GPUREG_025B|GPUREG_025B]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 025C&lt;br /&gt;
| [[#GPUREG_025C|GPUREG_025C]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 025D&lt;br /&gt;
| [[#GPUREG_025D|GPUREG_025D]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 025E&lt;br /&gt;
| [[#GPUREG_PRIMITIVE_CONFIG|GPUREG_PRIMITIVE_CONFIG]]&lt;br /&gt;
| ?&lt;br /&gt;
|PICA_REG_GS_OUT_REG_NUM3 / PICA_REG_VS_OUT_REG_NUM3&lt;br /&gt;
|-&lt;br /&gt;
| 025F&lt;br /&gt;
| [[#GPUREG_025F|GPUREG_025F]]&lt;br /&gt;
|?&lt;br /&gt;
|PICA_REG_START_DRAW_FUNC1&lt;br /&gt;
|-&lt;br /&gt;
| 0260&lt;br /&gt;
| [[#GPUREG_0260|GPUREG_0260]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0261&lt;br /&gt;
| [[#GPUREG_0261|GPUREG_0261]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0262&lt;br /&gt;
| [[#GPUREG_0262|GPUREG_0262]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0263&lt;br /&gt;
| [[#GPUREG_0263|GPUREG_0263]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0264&lt;br /&gt;
| [[#GPUREG_0264|GPUREG_0264]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0265&lt;br /&gt;
| [[#GPUREG_0265|GPUREG_0265]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0266&lt;br /&gt;
| [[#GPUREG_0266|GPUREG_0266]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0267&lt;br /&gt;
| [[#GPUREG_0267|GPUREG_0267]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0268&lt;br /&gt;
| [[#GPUREG_0268|GPUREG_0268]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0269&lt;br /&gt;
| [[#GPUREG_0269|GPUREG_0269]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 026A&lt;br /&gt;
| [[#GPUREG_026A|GPUREG_026A]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 026B&lt;br /&gt;
| [[#GPUREG_026B|GPUREG_026B]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 026C&lt;br /&gt;
| [[#GPUREG_026C|GPUREG_026C]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 026D&lt;br /&gt;
| [[#GPUREG_026D|GPUREG_026D]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 026E&lt;br /&gt;
| [[#GPUREG_026E|GPUREG_026E]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 026F&lt;br /&gt;
| [[#GPUREG_026F|GPUREG_026F]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0270&lt;br /&gt;
| [[#GPUREG_0270|GPUREG_0270]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0271&lt;br /&gt;
| [[#GPUREG_0271|GPUREG_0271]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0272&lt;br /&gt;
| [[#GPUREG_0272|GPUREG_0272]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0273&lt;br /&gt;
| [[#GPUREG_0273|GPUREG_0273]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0274&lt;br /&gt;
| [[#GPUREG_0274|GPUREG_0274]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0275&lt;br /&gt;
| [[#GPUREG_0275|GPUREG_0275]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0276&lt;br /&gt;
| [[#GPUREG_0276|GPUREG_0276]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0277&lt;br /&gt;
| [[#GPUREG_0277|GPUREG_0277]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0278&lt;br /&gt;
| [[#GPUREG_0278|GPUREG_0278]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0279&lt;br /&gt;
| [[#GPUREG_0279|GPUREG_0279]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 027A&lt;br /&gt;
| [[#GPUREG_027A|GPUREG_027A]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 027B&lt;br /&gt;
| [[#GPUREG_027B|GPUREG_027B]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 027C&lt;br /&gt;
| [[#GPUREG_027C|GPUREG_027C]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 027D&lt;br /&gt;
| [[#GPUREG_027D|GPUREG_027D]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 027E&lt;br /&gt;
| [[#GPUREG_027E|GPUREG_027E]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 027F&lt;br /&gt;
| [[#GPUREG_027F|GPUREG_027F]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=4 | Geometry shader registers&lt;br /&gt;
|-&lt;br /&gt;
| 0280&lt;br /&gt;
| [[#GPUREG_GSH_BOOLUNIFORM|GPUREG_GSH_BOOLUNIFORM]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_BOOL&lt;br /&gt;
|-&lt;br /&gt;
| 0281&lt;br /&gt;
| [[#GPUREG_GSH_INTUNIFORM_I0|GPUREG_GSH_INTUNIFORM_I0]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_INT0&lt;br /&gt;
|-&lt;br /&gt;
| 0282&lt;br /&gt;
| [[#GPUREG_GSH_INTUNIFORM_I1|GPUREG_GSH_INTUNIFORM_I1]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_INT1&lt;br /&gt;
|-&lt;br /&gt;
| 0283&lt;br /&gt;
| [[#GPUREG_GSH_INTUNIFORM_I2|GPUREG_GSH_INTUNIFORM_I2]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_INT2&lt;br /&gt;
|-&lt;br /&gt;
| 0284&lt;br /&gt;
| [[#GPUREG_GSH_INTUNIFORM_I3|GPUREG_GSH_INTUNIFORM_I3]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_INT3&lt;br /&gt;
|-&lt;br /&gt;
| 0285&lt;br /&gt;
| [[#GPUREG_0285|GPUREG_0285]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0286&lt;br /&gt;
| [[#GPUREG_0286|GPUREG_0286]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0287&lt;br /&gt;
| [[#GPUREG_0287|GPUREG_0287]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0288&lt;br /&gt;
| [[#GPUREG_0288|GPUREG_0288]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0289&lt;br /&gt;
| [[#GPUREG_GSH_INPUTBUFFER_CONFIG|GPUREG_GSH_INPUTBUFFER_CONFIG]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_ATTR_NUM&lt;br /&gt;
|-&lt;br /&gt;
| 028A&lt;br /&gt;
| [[#GPUREG_GSH_ENTRYPOINT|GPUREG_GSH_ENTRYPOINT]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_START_ADDR&lt;br /&gt;
|-&lt;br /&gt;
| 028B&lt;br /&gt;
| [[#GPUREG_GSH_ATTRIBUTES_PERMUTATION_LOW|GPUREG_GSH_ATTRIBUTES_PERMUTATION_LOW]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_ATTR_IN_REG_MAP0&lt;br /&gt;
|-&lt;br /&gt;
| 028C&lt;br /&gt;
| [[#GPUREG_GSH_ATTRIBUTES_PERMUTATION_HIGH|GPUREG_GSH_ATTRIBUTES_PERMUTATION_HIGH]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_ATTR_IN_REG_MAP1&lt;br /&gt;
|-&lt;br /&gt;
| 028D&lt;br /&gt;
| [[#GPUREG_GSH_OUTMAP_MASK|GPUREG_GSH_OUTMAP_MASK]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_OUT_REG_MASK&lt;br /&gt;
|-&lt;br /&gt;
| 028E&lt;br /&gt;
| [[#GPUREG_028E|GPUREG_028E]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 028F&lt;br /&gt;
| [[#GPUREG_GSH_CODETRANSFER_END|GPUREG_GSH_CODETRANSFER_END]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_PROG_RENEWAL_END&lt;br /&gt;
|-&lt;br /&gt;
| 0290&lt;br /&gt;
| [[#GPUREG_GSH_FLOATUNIFORM_CONFIG|GPUREG_GSH_FLOATUNIFORM_CONFIG]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_FLOAT_ADDR&lt;br /&gt;
|-&lt;br /&gt;
| 0291&lt;br /&gt;
| [[#GPUREG_GSH_FLOATUNIFORM_DATA|GPUREG_GSH_FLOATUNIFORM_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_FLOAT_DATA1&lt;br /&gt;
|-&lt;br /&gt;
| 0292&lt;br /&gt;
| [[#GPUREG_GSH_FLOATUNIFORM_DATA|GPUREG_GSH_FLOATUNIFORM_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_FLOAT_DATA2&lt;br /&gt;
|-&lt;br /&gt;
| 0293&lt;br /&gt;
| [[#GPUREG_GSH_FLOATUNIFORM_DATA|GPUREG_GSH_FLOATUNIFORM_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_FLOAT_DATA3&lt;br /&gt;
|-&lt;br /&gt;
| 0294&lt;br /&gt;
| [[#GPUREG_GSH_FLOATUNIFORM_DATA|GPUREG_GSH_FLOATUNIFORM_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_FLOAT_DATA4&lt;br /&gt;
|-&lt;br /&gt;
| 0295&lt;br /&gt;
| [[#GPUREG_GSH_FLOATUNIFORM_DATA|GPUREG_GSH_FLOATUNIFORM_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_FLOAT_DATA5&lt;br /&gt;
|-&lt;br /&gt;
| 0296&lt;br /&gt;
| [[#GPUREG_GSH_FLOATUNIFORM_DATA|GPUREG_GSH_FLOATUNIFORM_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_FLOAT_DATA6&lt;br /&gt;
|-&lt;br /&gt;
| 0297&lt;br /&gt;
| [[#GPUREG_GSH_FLOATUNIFORM_DATA|GPUREG_GSH_FLOATUNIFORM_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_FLOAT_DATA7&lt;br /&gt;
|-&lt;br /&gt;
| 0298&lt;br /&gt;
| [[#GPUREG_GSH_FLOATUNIFORM_DATA|GPUREG_GSH_FLOATUNIFORM_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_FLOAT_DATA8&lt;br /&gt;
|-&lt;br /&gt;
| 0299&lt;br /&gt;
| [[#GPUREG_0299|GPUREG_0299]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 029A&lt;br /&gt;
| [[#GPUREG_029A|GPUREG_029A]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 029B&lt;br /&gt;
| [[#GPUREG_GSH_CODETRANSFER_CONFIG|GPUREG_GSH_CODETRANSFER_CONFIG]]&lt;br /&gt;
| ?&lt;br /&gt;
|PICA_REG_GS_PROG_ADDR&lt;br /&gt;
|-&lt;br /&gt;
| 029C&lt;br /&gt;
| [[#GPUREG_GSH_CODETRANSFER_DATA|GPUREG_GSH_CODETRANSFER_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_PROG_DATA0&lt;br /&gt;
|-&lt;br /&gt;
| 029D&lt;br /&gt;
| [[#GPUREG_GSH_CODETRANSFER_DATA|GPUREG_GSH_CODETRANSFER_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_PROG_DATA1&lt;br /&gt;
|-&lt;br /&gt;
| 029E&lt;br /&gt;
| [[#GPUREG_GSH_CODETRANSFER_DATA|GPUREG_GSH_CODETRANSFER_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_PROG_DATA2&lt;br /&gt;
|-&lt;br /&gt;
| 029F&lt;br /&gt;
| [[#GPUREG_GSH_CODETRANSFER_DATA|GPUREG_GSH_CODETRANSFER_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_PROG_DATA3&lt;br /&gt;
|-&lt;br /&gt;
| 02A0&lt;br /&gt;
| [[#GPUREG_GSH_CODETRANSFER_DATA|GPUREG_GSH_CODETRANSFER_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_PROG_DATA4&lt;br /&gt;
|-&lt;br /&gt;
| 02A1&lt;br /&gt;
| [[#GPUREG_GSH_CODETRANSFER_DATA|GPUREG_GSH_CODETRANSFER_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_PROG_DATA5&lt;br /&gt;
|-&lt;br /&gt;
| 02A2&lt;br /&gt;
| [[#GPUREG_GSH_CODETRANSFER_DATA|GPUREG_GSH_CODETRANSFER_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_PROG_DATA6&lt;br /&gt;
|-&lt;br /&gt;
| 02A3&lt;br /&gt;
| [[#GPUREG_GSH_CODETRANSFER_DATA|GPUREG_GSH_CODETRANSFER_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_PROG_DATA7&lt;br /&gt;
|-&lt;br /&gt;
| 02A4&lt;br /&gt;
| [[#GPUREG_02A4|GPUREG_02A4]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02A5&lt;br /&gt;
| [[#GPUREG_GSH_OPDESCS_CONFIG|GPUREG_GSH_OPDESCS_CONFIG]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_PROG_SWIZZLE_ADDR&lt;br /&gt;
|-&lt;br /&gt;
| 02A6&lt;br /&gt;
| [[#GPUREG_GSH_OPDESCS_DATA|GPUREG_GSH_OPDESCS_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_PROG_SWIZZLE_DATA0&lt;br /&gt;
|-&lt;br /&gt;
| 02A7&lt;br /&gt;
| [[#GPUREG_GSH_OPDESCS_DATA|GPUREG_GSH_OPDESCS_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_PROG_SWIZZLE_DATA1&lt;br /&gt;
|-&lt;br /&gt;
| 02A8&lt;br /&gt;
| [[#GPUREG_GSH_OPDESCS_DATA|GPUREG_GSH_OPDESCS_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_PROG_SWIZZLE_DATA2&lt;br /&gt;
|-&lt;br /&gt;
| 02A9&lt;br /&gt;
| [[#GPUREG_GSH_OPDESCS_DATA|GPUREG_GSH_OPDESCS_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_PROG_SWIZZLE_DATA3&lt;br /&gt;
|-&lt;br /&gt;
| 02AA&lt;br /&gt;
| [[#GPUREG_GSH_OPDESCS_DATA|GPUREG_GSH_OPDESCS_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_PROG_SWIZZLE_DATA4&lt;br /&gt;
|-&lt;br /&gt;
| 02AB&lt;br /&gt;
| [[#GPUREG_GSH_OPDESCS_DATA|GPUREG_GSH_OPDESCS_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_PROG_SWIZZLE_DATA5&lt;br /&gt;
|-&lt;br /&gt;
| 02AC&lt;br /&gt;
| [[#GPUREG_GSH_OPDESCS_DATA|GPUREG_GSH_OPDESCS_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_PROG_SWIZZLE_DATA6&lt;br /&gt;
|-&lt;br /&gt;
| 02AD&lt;br /&gt;
| [[#GPUREG_GSH_OPDESCS_DATA|GPUREG_GSH_OPDESCS_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_GS_PROG_SWIZZLE_DATA7&lt;br /&gt;
|-&lt;br /&gt;
| 02AE&lt;br /&gt;
| [[#GPUREG_02AE|GPUREG_02AE]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02AF&lt;br /&gt;
| [[#GPUREG_02AF|GPUREG_02AF]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=4 | Vertex shader registers&lt;br /&gt;
|-&lt;br /&gt;
| 02B0&lt;br /&gt;
| [[#GPUREG_VSH_BOOLUNIFORM|GPUREG_VSH_BOOLUNIFORM]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_VS_BOOL&lt;br /&gt;
|-&lt;br /&gt;
| 02B1&lt;br /&gt;
| [[#GPUREG_VSH_INTUNIFORM_I0|GPUREG_VSH_INTUNIFORM_I0]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_VS_INT0&lt;br /&gt;
|-&lt;br /&gt;
| 02B2&lt;br /&gt;
| [[#GPUREG_VSH_INTUNIFORM_I1|GPUREG_VSH_INTUNIFORM_I1]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_VS_INT1&lt;br /&gt;
|-&lt;br /&gt;
| 02B3&lt;br /&gt;
| [[#GPUREG_VSH_INTUNIFORM_I2|GPUREG_VSH_INTUNIFORM_I2]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_VS_INT2&lt;br /&gt;
|-&lt;br /&gt;
| 02B4&lt;br /&gt;
| [[#GPUREG_VSH_INTUNIFORM_I3|GPUREG_VSH_INTUNIFORM_I3]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_VS_INT3&lt;br /&gt;
|-&lt;br /&gt;
| 02B5&lt;br /&gt;
| [[#GPUREG_02B5|GPUREG_02B5]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02B6&lt;br /&gt;
| [[#GPUREG_02B6|GPUREG_02B6]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02B7&lt;br /&gt;
| [[#GPUREG_02B7|GPUREG_02B7]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02B8&lt;br /&gt;
| [[#GPUREG_02B8|GPUREG_02B8]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02B9&lt;br /&gt;
| [[#GPUREG_VSH_INPUTBUFFER_CONFIG|GPUREG_VSH_INPUTBUFFER_CONFIG]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_VS_ATTR_NUM0&lt;br /&gt;
|-&lt;br /&gt;
| 02BA&lt;br /&gt;
| [[#GPUREG_VSH_ENTRYPOINT|GPUREG_VSH_ENTRYPOINT]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_VS_START_ADDR&lt;br /&gt;
|-&lt;br /&gt;
| 02BB&lt;br /&gt;
| [[#GPUREG_VSH_ATTRIBUTES_PERMUTATION_LOW|GPUREG_VSH_ATTRIBUTES_PERMUTATION_LOW]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_VS_ATTR_IN_REG_MAP0&lt;br /&gt;
|-&lt;br /&gt;
| 02BC&lt;br /&gt;
| [[#GPUREG_VSH_ATTRIBUTES_PERMUTATION_HIGH|GPUREG_VSH_ATTRIBUTES_PERMUTATION_HIGH]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_VS_ATTR_IN_REG_MAP1&lt;br /&gt;
|-&lt;br /&gt;
| 02BD&lt;br /&gt;
| [[#GPUREG_VSH_OUTMAP_MASK|GPUREG_VSH_OUTMAP_MASK]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_VS_OUT_REG_MASK&lt;br /&gt;
|-&lt;br /&gt;
| 02BE&lt;br /&gt;
| [[#GPUREG_02BE|GPUREG_02BE]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02BF&lt;br /&gt;
| [[#GPUREG_VSH_CODETRANSFER_END|GPUREG_VSH_CODETRANSFER_END]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_VS_PROG_RENEWAL_END&lt;br /&gt;
|-&lt;br /&gt;
| 02C0&lt;br /&gt;
| [[#GPUREG_VSH_FLOATUNIFORM_CONFIG|GPUREG_VSH_FLOATUNIFORM_CONFIG]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_VS_FLOAT_ADDR&lt;br /&gt;
|-&lt;br /&gt;
| 02C1&lt;br /&gt;
| [[#GPUREG_VSH_FLOATUNIFORM_DATA|GPUREG_VSH_FLOATUNIFORM_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_VS_FLOAT_DATA1&lt;br /&gt;
|-&lt;br /&gt;
| 02C2&lt;br /&gt;
| [[#GPUREG_VSH_FLOATUNIFORM_DATA|GPUREG_VSH_FLOATUNIFORM_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_VS_FLOAT_DATA2&lt;br /&gt;
|-&lt;br /&gt;
| 02C3&lt;br /&gt;
| [[#GPUREG_VSH_FLOATUNIFORM_DATA|GPUREG_VSH_FLOATUNIFORM_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_VS_FLOAT_DATA3&lt;br /&gt;
|-&lt;br /&gt;
| 02C4&lt;br /&gt;
| [[#GPUREG_VSH_FLOATUNIFORM_DATA|GPUREG_VSH_FLOATUNIFORM_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_VS_FLOAT_DATA4&lt;br /&gt;
|-&lt;br /&gt;
| 02C5&lt;br /&gt;
| [[#GPUREG_VSH_FLOATUNIFORM_DATA|GPUREG_VSH_FLOATUNIFORM_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_VS_FLOAT_DATA5&lt;br /&gt;
|-&lt;br /&gt;
| 02C6&lt;br /&gt;
| [[#GPUREG_VSH_FLOATUNIFORM_DATA|GPUREG_VSH_FLOATUNIFORM_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_VS_FLOAT_DATA6&lt;br /&gt;
|-&lt;br /&gt;
| 02C7&lt;br /&gt;
| [[#GPUREG_VSH_FLOATUNIFORM_DATA|GPUREG_VSH_FLOATUNIFORM_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_VS_FLOAT_DATA7&lt;br /&gt;
|-&lt;br /&gt;
| 02C8&lt;br /&gt;
| [[#GPUREG_VSH_FLOATUNIFORM_DATA|GPUREG_VSH_FLOATUNIFORM_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_VS_FLOAT_DATA8&lt;br /&gt;
|-&lt;br /&gt;
| 02C9&lt;br /&gt;
| [[#GPUREG_02C9|GPUREG_02C9]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02CA&lt;br /&gt;
| [[#GPUREG_02CA|GPUREG_02CA]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02CB&lt;br /&gt;
| [[#GPUREG_VSH_CODETRANSFER_CONFIG|GPUREG_VSH_CODETRANSFER_CONFIG]]&lt;br /&gt;
| ?&lt;br /&gt;
|PICA_REG_VS_PROG_ADDR&lt;br /&gt;
|-&lt;br /&gt;
| 02CC&lt;br /&gt;
| [[#GPUREG_VSH_CODETRANSFER_DATA|GPUREG_VSH_CODETRANSFER_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_VS_PROG_DATA0&lt;br /&gt;
|-&lt;br /&gt;
| 02CD&lt;br /&gt;
| [[#GPUREG_VSH_CODETRANSFER_DATA|GPUREG_VSH_CODETRANSFER_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_VS_PROG_DATA1&lt;br /&gt;
|-&lt;br /&gt;
| 02CE&lt;br /&gt;
| [[#GPUREG_VSH_CODETRANSFER_DATA|GPUREG_VSH_CODETRANSFER_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_VS_PROG_DATA2&lt;br /&gt;
|-&lt;br /&gt;
| 02CF&lt;br /&gt;
| [[#GPUREG_VSH_CODETRANSFER_DATA|GPUREG_VSH_CODETRANSFER_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_VS_PROG_DATA3&lt;br /&gt;
|-&lt;br /&gt;
| 02D0&lt;br /&gt;
| [[#GPUREG_VSH_CODETRANSFER_DATA|GPUREG_VSH_CODETRANSFER_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_VS_PROG_DATA4&lt;br /&gt;
|-&lt;br /&gt;
| 02D1&lt;br /&gt;
| [[#GPUREG_VSH_CODETRANSFER_DATA|GPUREG_VSH_CODETRANSFER_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_VS_PROG_DATA5&lt;br /&gt;
|-&lt;br /&gt;
| 02D2&lt;br /&gt;
| [[#GPUREG_VSH_CODETRANSFER_DATA|GPUREG_VSH_CODETRANSFER_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_VS_PROG_DATA6&lt;br /&gt;
|-&lt;br /&gt;
| 02D3&lt;br /&gt;
| [[#GPUREG_VSH_CODETRANSFER_DATA|GPUREG_VSH_CODETRANSFER_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_VS_PROG_DATA7&lt;br /&gt;
|-&lt;br /&gt;
| 02D4&lt;br /&gt;
| [[#GPUREG_02D4|GPUREG_02D4]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02D5&lt;br /&gt;
| [[#GPUREG_VSH_OPDESCS_CONFIG|GPUREG_VSH_OPDESCS_CONFIG]]&lt;br /&gt;
| ?&lt;br /&gt;
|PICA_REG_VS_PROG_SWIZZLE_ADDR&lt;br /&gt;
|-&lt;br /&gt;
| 02D6&lt;br /&gt;
| [[#GPUREG_VSH_OPDESCS_DATA|GPUREG_VSH_OPDESCS_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_VS_PROG_SWIZZLE_DATA0&lt;br /&gt;
|-&lt;br /&gt;
| 02D7&lt;br /&gt;
| [[#GPUREG_VSH_OPDESCS_DATA|GPUREG_VSH_OPDESCS_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_VS_PROG_SWIZZLE_DATA1&lt;br /&gt;
|-&lt;br /&gt;
| 02D8&lt;br /&gt;
| [[#GPUREG_VSH_OPDESCS_DATA|GPUREG_VSH_OPDESCS_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_VS_PROG_SWIZZLE_DATA2&lt;br /&gt;
|-&lt;br /&gt;
| 02D9&lt;br /&gt;
| [[#GPUREG_VSH_OPDESCS_DATA|GPUREG_VSH_OPDESCS_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_VS_PROG_SWIZZLE_DATA3&lt;br /&gt;
|-&lt;br /&gt;
| 02DA&lt;br /&gt;
| [[#GPUREG_VSH_OPDESCS_DATA|GPUREG_VSH_OPDESCS_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_VS_PROG_SWIZZLE_DATA4&lt;br /&gt;
|-&lt;br /&gt;
| 02DB&lt;br /&gt;
| [[#GPUREG_VSH_OPDESCS_DATA|GPUREG_VSH_OPDESCS_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_VS_PROG_SWIZZLE_DATA5&lt;br /&gt;
|-&lt;br /&gt;
| 02DC&lt;br /&gt;
| [[#GPUREG_VSH_OPDESCS_DATA|GPUREG_VSH_OPDESCS_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_VS_PROG_SWIZZLE_DATA6&lt;br /&gt;
|-&lt;br /&gt;
| 02DD&lt;br /&gt;
| [[#GPUREG_VSH_OPDESCS_DATA|GPUREG_VSH_OPDESCS_DATA]]&lt;br /&gt;
| &lt;br /&gt;
|PICA_REG_VS_PROG_SWIZZLE_DATA7&lt;br /&gt;
|-&lt;br /&gt;
! colspan=4 | Unknown registers&lt;br /&gt;
|-&lt;br /&gt;
| 02DE&lt;br /&gt;
| [[#GPUREG_02DE|GPUREG_02DE]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02DF&lt;br /&gt;
| [[#GPUREG_02DF|GPUREG_02DF]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02E0&lt;br /&gt;
| [[#GPUREG_02E0|GPUREG_02E0]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02E1&lt;br /&gt;
| [[#GPUREG_02E1|GPUREG_02E1]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02E2&lt;br /&gt;
| [[#GPUREG_02E2|GPUREG_02E2]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02E3&lt;br /&gt;
| [[#GPUREG_02E3|GPUREG_02E3]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02E4&lt;br /&gt;
| [[#GPUREG_02E4|GPUREG_02E4]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02E5&lt;br /&gt;
| [[#GPUREG_02E5|GPUREG_02E5]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02E6&lt;br /&gt;
| [[#GPUREG_02E6|GPUREG_02E6]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02E7&lt;br /&gt;
| [[#GPUREG_02E7|GPUREG_02E7]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02E8&lt;br /&gt;
| [[#GPUREG_02E8|GPUREG_02E8]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02E9&lt;br /&gt;
| [[#GPUREG_02E9|GPUREG_02E9]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02EA&lt;br /&gt;
| [[#GPUREG_02EA|GPUREG_02EA]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02EB&lt;br /&gt;
| [[#GPUREG_02EB|GPUREG_02EB]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02EC&lt;br /&gt;
| [[#GPUREG_02EC|GPUREG_02EC]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02ED&lt;br /&gt;
| [[#GPUREG_02ED|GPUREG_02ED]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02EE&lt;br /&gt;
| [[#GPUREG_02EE|GPUREG_02EE]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02EF&lt;br /&gt;
| [[#GPUREG_02EF|GPUREG_02EF]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02F0&lt;br /&gt;
| [[#GPUREG_02F0|GPUREG_02F0]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02F1&lt;br /&gt;
| [[#GPUREG_02F1|GPUREG_02F1]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02F2&lt;br /&gt;
| [[#GPUREG_02F2|GPUREG_02F2]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02F3&lt;br /&gt;
| [[#GPUREG_02F3|GPUREG_02F3]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02F4&lt;br /&gt;
| [[#GPUREG_02F4|GPUREG_02F4]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02F5&lt;br /&gt;
| [[#GPUREG_02F5|GPUREG_02F5]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02F6&lt;br /&gt;
| [[#GPUREG_02F6|GPUREG_02F6]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02F7&lt;br /&gt;
| [[#GPUREG_02F7|GPUREG_02F7]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02F8&lt;br /&gt;
| [[#GPUREG_02F8|GPUREG_02F8]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02F9&lt;br /&gt;
| [[#GPUREG_02F9|GPUREG_02F9]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02FA&lt;br /&gt;
| [[#GPUREG_02FA|GPUREG_02FA]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02FB&lt;br /&gt;
| [[#GPUREG_02FB|GPUREG_02FB]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02FC&lt;br /&gt;
| [[#GPUREG_02FC|GPUREG_02FC]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02FD&lt;br /&gt;
| [[#GPUREG_02FD|GPUREG_02FD]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02FE&lt;br /&gt;
| [[#GPUREG_02FE|GPUREG_02FE]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 02FF&lt;br /&gt;
| [[#GPUREG_02FF|GPUREG_02FF]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== GPUREG_FINALIZE ===&lt;br /&gt;
&lt;br /&gt;
Writing to this register seems to signal the GPU to stop processing GPU commands from the current buffer; any command following a write to this register will be ignored. The value written to this register does not appear to matter, although 0x12345678 is the value typically written by commercial software.&lt;br /&gt;
Failure to write to this register in any command buffer will result in the GPU hanging.&lt;br /&gt;
&lt;br /&gt;
=== GPUREG_DEPTHBUFFER_FORMAT ===&lt;br /&gt;
&lt;br /&gt;
The format the current depth buffer should be written into. Following values are possible:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Value&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 16-bit depth&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| ?? seems to freeze the GPU&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 24-bit depth&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| 24-bit depth + 8-bit stencil (stencil is within bit 24-31)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== GPUREG_COLORBUFFER_FORMAT ===&lt;br /&gt;
&lt;br /&gt;
Describes the format of the current color buffer used for 3D rendering.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0-7&lt;br /&gt;
| Pixel size (0=16-bit, 1=24-bit, 2=32-bit, 3=64-bit?)&lt;br /&gt;
|-&lt;br /&gt;
| 16-23&lt;br /&gt;
| Framebuffer Format (0=GL_RGBA8, 1=GL_RGB8, 2=GL_RGB5_A1, 3=GL_R5_G6_B5, 4=GL_RGBA4).&lt;br /&gt;
Note that these values are slightly different from those in [[GPU#Framebuffer_color_formats]].&lt;br /&gt;
&lt;br /&gt;
Color components are laid out in reverse byte order, with the most significant bits used first.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== GPUREG_01C4 ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Disable bit for frag light source 0 shadows&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Disable bit for frag light source 1 shadows&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Disable bit for frag light source 2 shadows&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Disable bit for frag light source 3 shadows&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Disable bit for frag light source 4 shadows&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Disable bit for frag light source 5 shadows&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Disable bit for frag light source 6 shadows&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Disable bit for frag light source 7 shadows&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Disable bit for frag light source 0 spot&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| Disable bit for frag light source 1 spot&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Disable bit for frag light source 2 spot&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Disable bit for frag light source 3 spot&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| Disable bit for frag light source 4 spot&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| Disable bit for frag light source 5 spot&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| Disable bit for frag light source 6 spot&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| Disable bit for frag light source 7 spot&lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| Disable bit for frag light source 0 distance attenuation&lt;br /&gt;
|-&lt;br /&gt;
| 25&lt;br /&gt;
| Disable bit for frag light source 1 distance attenuation&lt;br /&gt;
|-&lt;br /&gt;
| 26&lt;br /&gt;
| Disable bit for frag light source 2 distance attenuation&lt;br /&gt;
|-&lt;br /&gt;
| 27&lt;br /&gt;
| Disable bit for frag light source 3 distance attenuation&lt;br /&gt;
|-&lt;br /&gt;
| 28&lt;br /&gt;
| Disable bit for frag light source 4 distance attenuation&lt;br /&gt;
|-&lt;br /&gt;
| 29&lt;br /&gt;
| Disable bit for frag light source 5 distance attenuation&lt;br /&gt;
|-&lt;br /&gt;
| 30&lt;br /&gt;
| Disable bit for frag light source 6 distance attenuation&lt;br /&gt;
|-&lt;br /&gt;
| 31&lt;br /&gt;
| Disable bit for frag light source 7 distance attenuation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== GPUREG_GEOSTAGE_CONFIG ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0-7&lt;br /&gt;
| Geometry stage mode. (0=Vertex shader only, 2=Vertex shader + geometry shader)&lt;br /&gt;
|-&lt;br /&gt;
| 0-7&lt;br /&gt;
| Unknown. Often set to 1.&lt;br /&gt;
|-&lt;br /&gt;
| 0-7&lt;br /&gt;
| Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| 0-7&lt;br /&gt;
| Unknown. Often set to 0.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This register configures the geometry stage of the GPU pipeline.&lt;br /&gt;
&lt;br /&gt;
=== Geometry shader registers ===&lt;br /&gt;
&lt;br /&gt;
==== GPUREG_GSH_BOOLUNIFORM ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Value of geometry shader unit&#039;s b0 boolean register. (0=true, 1=false)&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Value of geometry shader unit&#039;s b1 boolean register. (0=true, 1=false)&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Value of geometry shader unit&#039;s b2 boolean register. (0=true, 1=false)&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Value of geometry shader unit&#039;s b3 boolean register. (0=true, 1=false)&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Value of geometry shader unit&#039;s b4 boolean register. (0=true, 1=false)&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Value of geometry shader unit&#039;s b5 boolean register. (0=true, 1=false)&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Value of geometry shader unit&#039;s b6 boolean register. (0=true, 1=false)&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Value of geometry shader unit&#039;s b7 boolean register. (0=true, 1=false)&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Value of geometry shader unit&#039;s b8 boolean register. (0=true, 1=false)&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| Value of geometry shader unit&#039;s b9 boolean register. (0=true, 1=false)&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Value of geometry shader unit&#039;s b10 boolean register. (0=true, 1=false)&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Value of geometry shader unit&#039;s b11 boolean register. (0=true, 1=false)&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| Value of geometry shader unit&#039;s b12 boolean register. (0=true, 1=false)&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| Value of geometry shader unit&#039;s b13 boolean register. (0=true, 1=false)&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| Value of geometry shader unit&#039;s b14 boolean register. (0=true, 1=false)&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| Value of geometry shader unit&#039;s b15 boolean register. (0=true, 1=false)&lt;br /&gt;
|-&lt;br /&gt;
| 16-31&lt;br /&gt;
| Unknown. This seems to always be set to 0x7FFF, and other values may cause the GPU to hang&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This register is used to set the geometry shader unit&#039;s boolean registers.&lt;br /&gt;
&lt;br /&gt;
==== GPUREG_GSH_INTUNIFORM_I0 ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0-7&lt;br /&gt;
| Value for geometry shader&#039;s i0.x (u8, 0-255)&lt;br /&gt;
|-&lt;br /&gt;
| 8-15&lt;br /&gt;
| Value for geometry shader&#039;s i0.y (u8, 0-255)&lt;br /&gt;
|-&lt;br /&gt;
| 16-23&lt;br /&gt;
| Value for geometry shader&#039;s i0.z (u8, 0-255)&lt;br /&gt;
|-&lt;br /&gt;
| 24-31&lt;br /&gt;
| Value for geometry shader&#039;s i0.w (u8, 0-255)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This register is used to set the geometry shader&#039;s i0 integer register.&lt;br /&gt;
&lt;br /&gt;
==== GPUREG_GSH_INTUNIFORM_I1 ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0-7&lt;br /&gt;
| Value for geometry shader&#039;s i1.x (u8, 0-255)&lt;br /&gt;
|-&lt;br /&gt;
| 8-15&lt;br /&gt;
| Value for geometry shader&#039;s i1.y (u8, 0-255)&lt;br /&gt;
|-&lt;br /&gt;
| 16-23&lt;br /&gt;
| Value for geometry shader&#039;s i1.z (u8, 0-255)&lt;br /&gt;
|-&lt;br /&gt;
| 24-31&lt;br /&gt;
| Value for geometry shader&#039;s i1.w (u8, 0-255)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This register is used to set the geometry shader&#039;s i1 integer register.&lt;br /&gt;
&lt;br /&gt;
==== GPUREG_GSH_INTUNIFORM_I2 ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0-7&lt;br /&gt;
| Value for geometry shader&#039;s i2.x (u8, 0-255)&lt;br /&gt;
|-&lt;br /&gt;
| 8-15&lt;br /&gt;
| Value for geometry shader&#039;s i2.y (u8, 0-255)&lt;br /&gt;
|-&lt;br /&gt;
| 16-23&lt;br /&gt;
| Value for geometry shader&#039;s i2.z (u8, 0-255)&lt;br /&gt;
|-&lt;br /&gt;
| 24-31&lt;br /&gt;
| Value for geometry shader&#039;s i2.w (u8, 0-255)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This register is used to set the geometry shader&#039;s i2 integer register.&lt;br /&gt;
&lt;br /&gt;
==== GPUREG_GSH_INTUNIFORM_I3 ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0-7&lt;br /&gt;
| Value for geometry shader&#039;s i3.x (u8, 0-255)&lt;br /&gt;
|-&lt;br /&gt;
| 8-15&lt;br /&gt;
| Value for geometry shader&#039;s i3.y (u8, 0-255)&lt;br /&gt;
|-&lt;br /&gt;
| 16-23&lt;br /&gt;
| Value for geometry shader&#039;s i3.z (u8, 0-255)&lt;br /&gt;
|-&lt;br /&gt;
| 24-31&lt;br /&gt;
| Value for geometry shader&#039;s i3.w (u8, 0-255)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This register is used to set the geometry shader&#039;s i3 integer register.&lt;br /&gt;
&lt;br /&gt;
==== GPUREG_GSH_INPUTBUFFER_CONFIG ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0-7&lt;br /&gt;
| Input buffer stride minus 1, in float vec4 registers. (value 0 means a stride of 1 float vec4 register)&lt;br /&gt;
|-&lt;br /&gt;
| 8-23&lt;br /&gt;
| Unknown. These bits typically aren&#039;t updated by games.&lt;br /&gt;
|-&lt;br /&gt;
| 24-31&lt;br /&gt;
| Unknown. This is typically set to 8 for geometry shaders.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This register is used to configure the geometry shader&#039;s input buffer. In the context of a geometry shader, the stride parameter can be interpreted as the input primitive size in registers, though it is not a limit on the number of input registers which can be accessed from the geometry shader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== GPUREG_GSH_ENTRYPOINT ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0-15&lt;br /&gt;
| Geometry shader unit entrypoint, in words.&lt;br /&gt;
|-&lt;br /&gt;
| 16-31&lt;br /&gt;
| Unknown. This seems to always be set to 0x7FFF, and other values may cause the GPU to hang&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This sets the entrypoint for the program running on the single shader unit which can be dedicated to running geometry shaders, regardless of the current geometry stage mode. This is means that while this register is normally used to set the geometry shader entrypoint, it can also be used to set this single shader unit to run from a different entrypoint than the other three even when running a vertex shader.&lt;br /&gt;
&lt;br /&gt;
==== GPUREG_GSH_ATTRIBUTES_PERMUTATION_LOW ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0-3&lt;br /&gt;
| Index of geometry shader input register which the 1st attribute will be stored in.&lt;br /&gt;
|-&lt;br /&gt;
| 4-7&lt;br /&gt;
| Index of geometry shader input register which the 2nd attribute will be stored in.&lt;br /&gt;
|-&lt;br /&gt;
| 8-11&lt;br /&gt;
| Index of geometry shader input register which the 3rd attribute will be stored in.&lt;br /&gt;
|-&lt;br /&gt;
| 12-15&lt;br /&gt;
| Index of geometry shader input register which the 4th attribute will be stored in.&lt;br /&gt;
|-&lt;br /&gt;
| 16-19&lt;br /&gt;
| Index of geometry shader input register which the 5th attribute will be stored in.&lt;br /&gt;
|-&lt;br /&gt;
| 20-23&lt;br /&gt;
| Index of geometry shader input register which the 6th attribute will be stored in.&lt;br /&gt;
|-&lt;br /&gt;
| 24-27&lt;br /&gt;
| Index of geometry shader input register which the 7th attribute will be stored in.&lt;br /&gt;
|-&lt;br /&gt;
| 28-31&lt;br /&gt;
| Index of geometry shader input register which the 8th attribute will be stored in.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This register sets the geometry shader input register index which will correspond to each attribute contained by the input buffer (which in the case of geometry shaders is the vertex shader output buffer) for the first 8 attributes.&lt;br /&gt;
For example, having bits 0-3 set to 5 means that, in the geometry shader program, v5 will contain the input buffer&#039;s 1st attribute.&lt;br /&gt;
&lt;br /&gt;
==== GPUREG_GSH_ATTRIBUTES_PERMUTATION_HIGH ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0-3&lt;br /&gt;
| Index of geometry shader input register which the 9th attribute will be stored in.&lt;br /&gt;
|-&lt;br /&gt;
| 4-7&lt;br /&gt;
| Index of geometry shader input register which the 10th attribute will be stored in.&lt;br /&gt;
|-&lt;br /&gt;
| 8-11&lt;br /&gt;
| Index of geometry shader input register which the 11th attribute will be stored in.&lt;br /&gt;
|-&lt;br /&gt;
| 12-15&lt;br /&gt;
| Index of geometry shader input register which the 12th attribute will be stored in.&lt;br /&gt;
|-&lt;br /&gt;
| 16-19&lt;br /&gt;
| Index of geometry shader input register which the 13th attribute will be stored in.&lt;br /&gt;
|-&lt;br /&gt;
| 20-23&lt;br /&gt;
| Index of geometry shader input register which the 14th attribute will be stored in.&lt;br /&gt;
|-&lt;br /&gt;
| 24-27&lt;br /&gt;
| Index of geometry shader input register which the 15th attribute will be stored in.&lt;br /&gt;
|-&lt;br /&gt;
| 28-31&lt;br /&gt;
| Index of geometry shader input register which the 16th attribute will be stored in.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This register sets the geometry shader input register index which will correspond to each attribute contained by the input buffer (which in the case of geometry shaders is the vertex shader output buffer) for attributes 8 through 15.&lt;br /&gt;
For example, having bits 0-3 set to 5 means that, in the geometry shader program, v5 will contain the input buffer&#039;s 9th attribute.&lt;br /&gt;
&lt;br /&gt;
==== GPUREG_GSH_OUTMAP_MASK ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Enable bit for geometry shader&#039;s o0 output register. (1 = o0 enabled, 0 = o0 disabled)&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Enable bit for geometry shader&#039;s o1 output register. (1 = o1 enabled, 0 = o1 disabled)&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Enable bit for geometry shader&#039;s o2 output register. (1 = o2 enabled, 0 = o2 disabled)&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Enable bit for geometry shader&#039;s o3 output register. (1 = o3 enabled, 0 = o3 disabled)&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Enable bit for geometry shader&#039;s o4 output register. (1 = o4 enabled, 0 = o4 disabled)&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Enable bit for geometry shader&#039;s o5 output register. (1 = o5 enabled, 0 = o5 disabled)&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Enable bit for geometry shader&#039;s o6 output register. (1 = o6 enabled, 0 = o6 disabled)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This register toggles the geometry shader unit&#039;s output registers.&lt;br /&gt;
&lt;br /&gt;
==== GPUREG_GSH_CODETRANSFER_END ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Code data transfer end signal bit.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This register&#039;s value should be set to 1 in order to finalize the transfer of geometry shader code. It is unknown whether this register is used for other functions.&lt;br /&gt;
&lt;br /&gt;
==== GPUREG_GSH_FLOATUNIFORM_CONFIG ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0-6&lt;br /&gt;
| Target float vec4 geometry shader uniform ID for transfer. (range 0-95, where 0 = c0 and 95 = c95)&lt;br /&gt;
|-&lt;br /&gt;
| 31&lt;br /&gt;
| Float vec4 geometry shader uniform data transfer mode. (0 = float24, 1 = float32)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This register sets the target float vec4 geometry shader uniform ID and transfer mode for the data transfer system. As such it is typically used right before [[#GPUREG_GSH_FLOATUNIFORM_DATA|GPUREG_GSH_FLOATUNIFORM_DATA]], though writing to one register does not make writing to the other mandatory.&lt;br /&gt;
&lt;br /&gt;
==== GPUREG_GSH_FLOATUNIFORM_DATA ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0-31&lt;br /&gt;
| Float vec4 geometry shader uniform data. (format depends on transfer mode, see below for details)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This register is used to set the value of float vec4 geometry shader uniform registers. The data format which should be written to it depends on the transfer mode set with [[#GPUREG_GSH_FLOATUNIFORM_CONFIG|GPUREG_GSH_FLOATUNIFORM_CONFIG]]. This register functions as a FIFO queue : after each time a uniform register is successfully set, the target uniform ID value is incremented, meaning that groups of uniforms with contiguous register IDs can be set with only one initial write to [[#GPUREG_GSH_FLOATUNIFORM_CONFIG|GPUREG_GSH_FLOATUNIFORM_CONFIG]].&lt;br /&gt;
&lt;br /&gt;
* In the case of float24 transfer mode, data should be sent by writing three words which are the concatenation of the float24 value of the uniform register&#039;s 4 components, in the reverse order. Assuming each letter corresponds to 4 bits, the format becomes :&lt;br /&gt;
** first word : ZZWWWWWW&lt;br /&gt;
** second word : YYYYZZZZ&lt;br /&gt;
** third word : XXXXXXYY&lt;br /&gt;
* In the case of float32 transfer mode, data should be sent by writing four words which are each the float32 value of the uniform register&#039;s 4 components, in the reverse order.&lt;br /&gt;
&lt;br /&gt;
==== GPUREG_GSH_CODETRANSFER_CONFIG ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0-11&lt;br /&gt;
| Target geometry shader code offset for data transfer.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This register is used to set the offset at which upcoming geometry shader code data transferred through [[#GPUREG_GSH_CODETRANSFER_DATA|GPUREG_GSH_CODETRANSFER_DATA]] should be written.&lt;br /&gt;
&lt;br /&gt;
NOTE : as we do not yet know what a shader program&#039;s maximum size is yet, we also do not know how many bits the code offset parameter holds. The biggest shader binary observed so far was 2422 instructions long. The [[Shader_Instruction_Set#Instruction_formats|shader control flow instructions]] only have room to address 12 bits though, so it&#039;s likely that the maximum is 4095.&lt;br /&gt;
&lt;br /&gt;
==== GPUREG_GSH_CODETRANSFER_DATA ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0-31&lt;br /&gt;
| Geometry shader instruction data.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This register is used to transfer geometry shader code data. This register behaves as a FIFO queue : each write to this register writes the provided value to the GPU geometry shader code memory bank at the offset initially set by [[#GPUREG_GSH_CODETRANSFER_CONFIG|GPUREG_GSH_CODETRANSFER_CONFIG]]. The offset in question is incremented after each write to this register.&lt;br /&gt;
&lt;br /&gt;
==== GPUREG_GSH_OPDESCS_CONFIG ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0-6&lt;br /&gt;
| Target geometry shader operand descriptor offset for data transfer.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This register is used to set the offset at which upcoming geometry shader operand descriptor data transferred through [[#GPUREG_GSH_OPDESCS_DATA|GPUREG_GSH_OPDESCS_DATA]] should be written.&lt;br /&gt;
&lt;br /&gt;
==== GPUREG_GSH_OPDESCS_DATA ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0-31&lt;br /&gt;
| Geometry shader operand descriptor data.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This register is used to transfer geometry shader operand descriptor data. This register behaves as a FIFO queue : each write to this register writes the provided value to the GPU geometry shader operand descriptor memory bank at the offset initially set by [[#GPUREG_GSH_OPDESCS_CONFIG|GPUREG_GSH_OPDESCS_CONFIG]]. The offset in question is incremented after each write to this register.&lt;br /&gt;
&lt;br /&gt;
=== Vertex shader registers ===&lt;br /&gt;
&lt;br /&gt;
==== GPUREG_VSH_BOOLUNIFORM ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Value of vertex shader unit&#039;s b0 boolean register. (0=true, 1=false)&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Value of vertex shader unit&#039;s b1 boolean register. (0=true, 1=false)&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Value of vertex shader unit&#039;s b2 boolean register. (0=true, 1=false)&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Value of vertex shader unit&#039;s b3 boolean register. (0=true, 1=false)&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Value of vertex shader unit&#039;s b4 boolean register. (0=true, 1=false)&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Value of vertex shader unit&#039;s b5 boolean register. (0=true, 1=false)&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Value of vertex shader unit&#039;s b6 boolean register. (0=true, 1=false)&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Value of vertex shader unit&#039;s b7 boolean register. (0=true, 1=false)&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Value of vertex shader unit&#039;s b8 boolean register. (0=true, 1=false)&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| Value of vertex shader unit&#039;s b9 boolean register. (0=true, 1=false)&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Value of vertex shader unit&#039;s b10 boolean register. (0=true, 1=false)&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Value of vertex shader unit&#039;s b11 boolean register. (0=true, 1=false)&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| Value of vertex shader unit&#039;s b12 boolean register. (0=true, 1=false)&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| Value of vertex shader unit&#039;s b13 boolean register. (0=true, 1=false)&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| Value of vertex shader unit&#039;s b14 boolean register. (0=true, 1=false)&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| Value of vertex shader unit&#039;s b15 boolean register. (0=true, 1=false)&lt;br /&gt;
|-&lt;br /&gt;
| 16-31&lt;br /&gt;
| Unknown. This seems to always be set to 0x7FFF, and other values may cause the GPU to hang&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This register is used to set the vertex shader unit&#039;s boolean registers.&lt;br /&gt;
&lt;br /&gt;
==== GPUREG_VSH_INTUNIFORM_I0 ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0-7&lt;br /&gt;
| Value for vertex shader&#039;s i0.x (u8, 0-255)&lt;br /&gt;
|-&lt;br /&gt;
| 8-15&lt;br /&gt;
| Value for vertex shader&#039;s i0.y (u8, 0-255)&lt;br /&gt;
|-&lt;br /&gt;
| 16-23&lt;br /&gt;
| Value for vertex shader&#039;s i0.z (u8, 0-255)&lt;br /&gt;
|-&lt;br /&gt;
| 24-31&lt;br /&gt;
| Value for vertex shader&#039;s i0.w (u8, 0-255)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This register is used to set the vertex shader&#039;s i0 integer register.&lt;br /&gt;
&lt;br /&gt;
==== GPUREG_VSH_INTUNIFORM_I1 ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0-7&lt;br /&gt;
| Value for vertex shader&#039;s i1.x (u8, 0-255)&lt;br /&gt;
|-&lt;br /&gt;
| 8-15&lt;br /&gt;
| Value for vertex shader&#039;s i1.y (u8, 0-255)&lt;br /&gt;
|-&lt;br /&gt;
| 16-23&lt;br /&gt;
| Value for vertex shader&#039;s i1.z (u8, 0-255)&lt;br /&gt;
|-&lt;br /&gt;
| 24-31&lt;br /&gt;
| Value for vertex shader&#039;s i1.w (u8, 0-255)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This register is used to set the vertex shader&#039;s i1 integer register.&lt;br /&gt;
&lt;br /&gt;
==== GPUREG_VSH_INTUNIFORM_I2 ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0-7&lt;br /&gt;
| Value for vertex shader&#039;s i2.x (u8, 0-255)&lt;br /&gt;
|-&lt;br /&gt;
| 8-15&lt;br /&gt;
| Value for vertex shader&#039;s i2.y (u8, 0-255)&lt;br /&gt;
|-&lt;br /&gt;
| 16-23&lt;br /&gt;
| Value for vertex shader&#039;s i2.z (u8, 0-255)&lt;br /&gt;
|-&lt;br /&gt;
| 24-31&lt;br /&gt;
| Value for vertex shader&#039;s i2.w (u8, 0-255)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This register is used to set the vertex shader&#039;s i2 integer register.&lt;br /&gt;
&lt;br /&gt;
==== GPUREG_VSH_INTUNIFORM_I3 ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0-7&lt;br /&gt;
| Value for vertex shader&#039;s i3.x (u8, 0-255)&lt;br /&gt;
|-&lt;br /&gt;
| 8-15&lt;br /&gt;
| Value for vertex shader&#039;s i3.y (u8, 0-255)&lt;br /&gt;
|-&lt;br /&gt;
| 16-23&lt;br /&gt;
| Value for vertex shader&#039;s i3.z (u8, 0-255)&lt;br /&gt;
|-&lt;br /&gt;
| 24-31&lt;br /&gt;
| Value for vertex shader&#039;s i3.w (u8, 0-255)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This register is used to set the vertex shader&#039;s i3 integer register.&lt;br /&gt;
&lt;br /&gt;
==== GPUREG_VSH_INPUTBUFFER_CONFIG ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0-7&lt;br /&gt;
| Input buffer stride minus 1, in float vec4 registers. (value 0 means a stride of 1 float vec4 register)&lt;br /&gt;
|-&lt;br /&gt;
| 8-23&lt;br /&gt;
| Unknown. These bits typically aren&#039;t updated by games.&lt;br /&gt;
|-&lt;br /&gt;
| 24-31&lt;br /&gt;
| Unknown. This is typically set to 0xA for vertex shaders.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This register is used to configure the vertex shader&#039;s input buffer. In the context of a geometry shader, the stride parameter can be interpreted as the number of attributes per vertex.&lt;br /&gt;
&lt;br /&gt;
==== GPUREG_VSH_ENTRYPOINT ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0-15&lt;br /&gt;
| Vertex shader entrypoint, in words.&lt;br /&gt;
|-&lt;br /&gt;
| 16-31&lt;br /&gt;
| Unknown. This seems to always be set to 0x7FFF, and other values may cause the GPU to hang&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This sets the entrypoint for the program running on shader units set to vertex shader mode. Depending on the current geometry stage mode this can include either all 4 shader units or just 3 of them.&lt;br /&gt;
&lt;br /&gt;
==== GPUREG_VSH_ATTRIBUTES_PERMUTATION_LOW ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0-3&lt;br /&gt;
| Index of vertex shader input register which the 1st attribute will be stored in.&lt;br /&gt;
|-&lt;br /&gt;
| 4-7&lt;br /&gt;
| Index of vertex shader input register which the 2nd attribute will be stored in.&lt;br /&gt;
|-&lt;br /&gt;
| 8-11&lt;br /&gt;
| Index of vertex shader input register which the 3rd attribute will be stored in.&lt;br /&gt;
|-&lt;br /&gt;
| 12-15&lt;br /&gt;
| Index of vertex shader input register which the 4th attribute will be stored in.&lt;br /&gt;
|-&lt;br /&gt;
| 16-19&lt;br /&gt;
| Index of vertex shader input register which the 5th attribute will be stored in.&lt;br /&gt;
|-&lt;br /&gt;
| 20-23&lt;br /&gt;
| Index of vertex shader input register which the 6th attribute will be stored in.&lt;br /&gt;
|-&lt;br /&gt;
| 24-27&lt;br /&gt;
| Index of vertex shader input register which the 7th attribute will be stored in.&lt;br /&gt;
|-&lt;br /&gt;
| 28-31&lt;br /&gt;
| Index of vertex shader input register which the 8th attribute will be stored in.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This register sets the vertex shader input register index which will correspond to each attribute contained by the input buffer for the first 8 attributes.&lt;br /&gt;
For example, having bits 0-3 set to 5 means that, in the vertex shader program, v5 will contain the input buffer&#039;s 1st attribute.&lt;br /&gt;
&lt;br /&gt;
==== GPUREG_VSH_ATTRIBUTES_PERMUTATION_HIGH ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0-3&lt;br /&gt;
| Index of vertex shader input register which the 9th attribute will be stored in.&lt;br /&gt;
|-&lt;br /&gt;
| 4-7&lt;br /&gt;
| Index of vertex shader input register which the 10th attribute will be stored in.&lt;br /&gt;
|-&lt;br /&gt;
| 8-11&lt;br /&gt;
| Index of vertex shader input register which the 11th attribute will be stored in.&lt;br /&gt;
|-&lt;br /&gt;
| 12-15&lt;br /&gt;
| Index of vertex shader input register which the 12th attribute will be stored in.&lt;br /&gt;
|-&lt;br /&gt;
| 16-19&lt;br /&gt;
| Index of vertex shader input register which the 13th attribute will be stored in.&lt;br /&gt;
|-&lt;br /&gt;
| 20-23&lt;br /&gt;
| Index of vertex shader input register which the 14th attribute will be stored in.&lt;br /&gt;
|-&lt;br /&gt;
| 24-27&lt;br /&gt;
| Index of vertex shader input register which the 15th attribute will be stored in.&lt;br /&gt;
|-&lt;br /&gt;
| 28-31&lt;br /&gt;
| Index of vertex shader input register which the 16th attribute will be stored in.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This register sets the vertex shader input register index which will correspond to each attribute contained by the input buffer for attributes 8 through 15.&lt;br /&gt;
For example, having bits 0-3 set to 5 means that, in the vertex shader program, v5 will contain the input buffer&#039;s 9th attribute.&lt;br /&gt;
&lt;br /&gt;
==== GPUREG_VSH_OUTMAP_MASK ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Enable bit for vertex shader&#039;s o0 output register. (1 = o0 enabled, 0 = o0 disabled)&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Enable bit for vertex shader&#039;s o1 output register. (1 = o1 enabled, 0 = o1 disabled)&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Enable bit for vertex shader&#039;s o2 output register. (1 = o2 enabled, 0 = o2 disabled)&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Enable bit for vertex shader&#039;s o3 output register. (1 = o3 enabled, 0 = o3 disabled)&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Enable bit for vertex shader&#039;s o4 output register. (1 = o4 enabled, 0 = o4 disabled)&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Enable bit for vertex shader&#039;s o5 output register. (1 = o5 enabled, 0 = o5 disabled)&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Enable bit for vertex shader&#039;s o6 output register. (1 = o6 enabled, 0 = o6 disabled)&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Enable bit for vertex shader&#039;s o7 output register. (1 = o7 enabled, 0 = o7 disabled)&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Enable bit for vertex shader&#039;s o8 output register. (1 = o8 enabled, 0 = o8 disabled)&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| Enable bit for vertex shader&#039;s o9 output register. (1 = o9 enabled, 0 = o9 disabled)&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Enable bit for vertex shader&#039;s o10 output register. (1 = o10 enabled, 0 = o10 disabled)&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Enable bit for vertex shader&#039;s o11 output register. (1 = o11 enabled, 0 = o11 disabled)&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| Enable bit for vertex shader&#039;s o12 output register. (1 = o12 enabled, 0 = o12 disabled)&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| Enable bit for vertex shader&#039;s o13 output register. (1 = o13 enabled, 0 = o13 disabled)&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| Enable bit for vertex shader&#039;s o14 output register. (1 = o14 enabled, 0 = o14 disabled)&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| Enable bit for vertex shader&#039;s o15 output register. (1 = o15 enabled, 0 = o15 disabled)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This register toggles the vertex shader units&#039; output registers.&lt;br /&gt;
&lt;br /&gt;
==== GPUREG_VSH_CODETRANSFER_END ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Code data transfer end signal bit.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This register&#039;s value should be set to 1 in order to finalize the transfer of vertex shader code. It is unknown whether this register is used for other functions.&lt;br /&gt;
&lt;br /&gt;
==== GPUREG_VSH_FLOATUNIFORM_CONFIG ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0-6&lt;br /&gt;
| Target float vec4 vertex shader uniform ID for transfer. (range 0-95, where 0 = c0 and 95 = c95)&lt;br /&gt;
|-&lt;br /&gt;
| 31&lt;br /&gt;
| Float vec4 vertex shader uniform data transfer mode. (0 = float24, 1 = float32)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This register sets the target float vec4 vertex shader uniform ID and transfer mode for the data transfer system. As such it is typically used right before [[#GPUREG_VSH_FLOATUNIFORM_DATA|GPUREG_VSH_FLOATUNIFORM_DATA]], though writing to one register does not make writing to the other mandatory.&lt;br /&gt;
&lt;br /&gt;
==== GPUREG_VSH_FLOATUNIFORM_DATA ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0-31&lt;br /&gt;
| Float vec4 vertex shader uniform data. (format depends on transfer mode, see below for details)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This register is used to set the value of float vec4 vertex shader uniform registers. The data format which should be written to it depends on the transfer mode set with [[#GPUREG_VSH_FLOATUNIFORM_CONFIG|GPUREG_VSH_FLOATUNIFORM_CONFIG]]. This register functions as a FIFO queue : after each time a uniform register is successfully set, the target uniform ID value is incremented, meaning that groups of uniforms with contiguous register IDs can be set with only one initial write to [[#GPUREG_VSH_FLOATUNIFORM_CONFIG|GPUREG_VSH_FLOATUNIFORM_CONFIG]].&lt;br /&gt;
&lt;br /&gt;
* In the case of float24 transfer mode, data should be sent by writing three words which are the concatenation of the float24 value of the uniform register&#039;s 4 components, in the reverse order. Assuming each letter corresponds to 4 bits, the format becomes :&lt;br /&gt;
** first word : ZZWWWWWW&lt;br /&gt;
** second word : YYYYZZZZ&lt;br /&gt;
** third word : XXXXXXYY&lt;br /&gt;
* In the case of float32 transfer mode, data should be sent by writing four words which are each the float32 value of the uniform register&#039;s 4 components, in the reverse order.&lt;br /&gt;
&lt;br /&gt;
==== GPUREG_VSH_CODETRANSFER_CONFIG ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0-11&lt;br /&gt;
| Target vertex shader code offset for data transfer.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This register is used to set the offset at which upcoming vertex shader code data transferred through [[#GPUREG_VSH_CODETRANSFER_DATA|GPUREG_VSH_CODETRANSFER_DATA]] should be written.&lt;br /&gt;
&lt;br /&gt;
NOTE : as we do not yet know what a shader program&#039;s maximum size is yet, we also do not know how many bits the code offset parameter holds. The biggest shader binary observed so far was 2422 instructions long. The [[Shader_Instruction_Set#Instruction_formats|shader control flow instructions]] only have room to address 12 bits though, so it&#039;s likely that the maximum is 4095.&lt;br /&gt;
&lt;br /&gt;
==== GPUREG_VSH_CODETRANSFER_DATA ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0-31&lt;br /&gt;
| Vertex shader instruction data.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This register is used to transfer vertex shader code data. This register behaves as a FIFO queue : each write to this register writes the provided value to the GPU vertex shader code memory bank at the offset initially set by [[#GPUREG_VSH_CODETRANSFER_CONFIG|GPUREG_VSH_CODETRANSFER_CONFIG]]. The offset in question is incremented after each write to this register.&lt;br /&gt;
&lt;br /&gt;
==== GPUREG_VSH_OPDESCS_CONFIG ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0-6&lt;br /&gt;
| Target vertex shader operand descriptor offset for data transfer.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This register is used to set the offset at which upcoming vertex shader operand descriptor data transferred through [[#GPUREG_VSH_OPDESCS_DATA|GPUREG_VSH_OPDESCS_DATA]] should be written.&lt;br /&gt;
&lt;br /&gt;
==== GPUREG_VSH_OPDESCS_DATA ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0-31&lt;br /&gt;
| Vertex shader operand descriptor data.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This register is used to transfer vertex shader operand descriptor data. This register behaves as a FIFO queue : each write to this register writes the provided value to the GPU vertex shader operand descriptor memory bank at the offset initially set by [[#GPUREG_VSH_OPDESCS_CONFIG|GPUREG_VSH_OPDESCS_CONFIG]]. The offset in question is incremented after each write to this register.&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=DSP_Services&amp;diff=12154</id>
		<title>DSP Services</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=DSP_Services&amp;diff=12154"/>
		<updated>2015-03-29T04:42:14Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: Undo revision 12136 by Purpasmart (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Services]]&lt;br /&gt;
= DSP service &amp;quot;dsp::DSP&amp;quot; =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010040&lt;br /&gt;
| RecvData(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020040&lt;br /&gt;
| RecvDataIsReady(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00030080&lt;br /&gt;
| SendData(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040040&lt;br /&gt;
| SendDataIsEmpty(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0005...&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0006...&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0007....&lt;br /&gt;
| [[DSP:WriteReg0x10|WriteReg0x10]] SetSemaphore&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080000&lt;br /&gt;
| GetSemaphore&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090040&lt;br /&gt;
| ClearSemaphore&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A....&lt;br /&gt;
| WriteReg0x18&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B0000&lt;br /&gt;
| CheckSemaphoreRequest&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0040&lt;br /&gt;
| [[DSP:ConvertProcessAddressFromDspDram|ConvertProcessAddressFromDspDram]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D0082&lt;br /&gt;
| [[DSP:WriteProcessPipe|WriteProcessPipe]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001000C0&lt;br /&gt;
| [[DSP:ReadPipeIfPossible|ReadPipeIfPossible]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001100C2&lt;br /&gt;
| [[DSP:LoadComponent|LoadComponent]]. This requires RSA-signed DSP firmware specified via the input buffer for this command, the firmware data is eventually written to DSPmem+0(0x1FF00000).&lt;br /&gt;
|-&lt;br /&gt;
| 0x00120000&lt;br /&gt;
| UnloadComponent&lt;br /&gt;
|-&lt;br /&gt;
| 0x00130082&lt;br /&gt;
| FlushDataCache (The buffer must be located in the 0x14000000 region)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 0x00140082&lt;br /&gt;
| InvalidateDCache (The buffer must be located in either the 0x14000000 region, or the DSP memory region)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00150082&lt;br /&gt;
| [[DSP:RegisterInterruptEvents|RegisterInterruptEvents(param0, param1, 0, eventhandle)]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00160000&lt;br /&gt;
| [[DSP:GetSemaphoreEventHandle|GetSemaphoreEventHandle]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00170040&lt;br /&gt;
| [[DSP:SetSemaphoreMask|SetSemaphoreMask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00180040&lt;br /&gt;
| GetPhysicalAddress (0x14000000+ -&amp;gt; 0x20000000+, 0x1FF00000+ -&amp;gt; 0x1FF00000+, 0x08000000-0x0E000000 -&amp;gt; 0x00000000+, 0 otherwise)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00190040&lt;br /&gt;
| GetVirtualAddress (0x20000000+ -&amp;gt; 0x14000000+, 0x1FF00000+ -&amp;gt; 0x1FF00000+, 0 otherwise)&lt;br /&gt;
|-&lt;br /&gt;
| 0x001A0042&lt;br /&gt;
| SetIirFilterI2S1. Wrapper for cdc:DSP cmd 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x001B0042&lt;br /&gt;
| SetIirFilterI2S1. Wrapper for cdc:DSP cmd 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x001C0082&lt;br /&gt;
| SetIirFilterEQ. Wrapper for cdc:DSP cmd 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x001D....&lt;br /&gt;
| Wrapper for cdc:DSP cmd 4&lt;br /&gt;
|-&lt;br /&gt;
| 0x001E....&lt;br /&gt;
| Wrapper for cdc:DSP cmd 5&lt;br /&gt;
|-&lt;br /&gt;
| 0x001F0000&lt;br /&gt;
| GetHeadphoneStatus. Wrapper for cdc:DSP cmd 6&lt;br /&gt;
|-&lt;br /&gt;
| 0x0020....&lt;br /&gt;
| Wrapper for cdc:DSP cmd 8&lt;br /&gt;
|-&lt;br /&gt;
| 0x00210000&lt;br /&gt;
| GetIsDspOccupied returns a byte (can be 1 or 0) can be set to 1 in LoadComponent&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is the main service for playing audio. The [[CSND_Services|CSND]] service can be used for playing audio as well, however most processes use this DSP service for playing audio. The DSP and CSND hardware can play audio simultaneously.&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=DSP_Services&amp;diff=12153</id>
		<title>DSP Services</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=DSP_Services&amp;diff=12153"/>
		<updated>2015-03-29T04:41:55Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: Undo revision 12139 by Purpasmart (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Services]]&lt;br /&gt;
= DSP service &amp;quot;dsp::DSP&amp;quot; =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010040&lt;br /&gt;
| RecvData(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010080&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020040&lt;br /&gt;
| RecvDataIsReady(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00030080&lt;br /&gt;
| SendData(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040040&lt;br /&gt;
| SendDataIsEmpty(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0005...&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0006...&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0007....&lt;br /&gt;
| [[DSP:WriteReg0x10|WriteReg0x10]] SetSemaphore&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080000&lt;br /&gt;
| GetSemaphore&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090040&lt;br /&gt;
| ClearSemaphore&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A....&lt;br /&gt;
| WriteReg0x18&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B0000&lt;br /&gt;
| CheckSemaphoreRequest&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0000&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0040&lt;br /&gt;
| [[DSP:ConvertProcessAddressFromDspDram|ConvertProcessAddressFromDspDram]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D0082&lt;br /&gt;
| [[DSP:WriteProcessPipe|WriteProcessPipe]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000E0800&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x001000C0&lt;br /&gt;
| [[DSP:ReadPipeIfPossible|ReadPipeIfPossible]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001100C2&lt;br /&gt;
| [[DSP:LoadComponent|LoadComponent]]. This requires RSA-signed DSP firmware specified via the input buffer for this command, the firmware data is eventually written to DSPmem+0(0x1FF00000).&lt;br /&gt;
|-&lt;br /&gt;
| 0x00120000&lt;br /&gt;
| UnloadComponent&lt;br /&gt;
|-&lt;br /&gt;
| 0x00130082&lt;br /&gt;
| FlushDataCache (The buffer must be located in the 0x14000000 region)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 0x00140082&lt;br /&gt;
| InvalidateDCache (The buffer must be located in either the 0x14000000 region, or the DSP memory region)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00150082&lt;br /&gt;
| [[DSP:RegisterInterruptEvents|RegisterInterruptEvents(param0, param1, 0, eventhandle)]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00160000&lt;br /&gt;
| [[DSP:GetSemaphoreEventHandle|GetSemaphoreEventHandle]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00170040&lt;br /&gt;
| [[DSP:SetSemaphoreMask|SetSemaphoreMask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00180040&lt;br /&gt;
| GetPhysicalAddress (0x14000000+ -&amp;gt; 0x20000000+, 0x1FF00000+ -&amp;gt; 0x1FF00000+, 0x08000000-0x0E000000 -&amp;gt; 0x00000000+, 0 otherwise)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00190040&lt;br /&gt;
| GetVirtualAddress (0x20000000+ -&amp;gt; 0x14000000+, 0x1FF00000+ -&amp;gt; 0x1FF00000+, 0 otherwise)&lt;br /&gt;
|-&lt;br /&gt;
| 0x001A0042&lt;br /&gt;
| SetIirFilterI2S1. Wrapper for cdc:DSP cmd 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x001B0042&lt;br /&gt;
| SetIirFilterI2S1. Wrapper for cdc:DSP cmd 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x001C0082&lt;br /&gt;
| SetIirFilterEQ. Wrapper for cdc:DSP cmd 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x001D....&lt;br /&gt;
| Wrapper for cdc:DSP cmd 4&lt;br /&gt;
|-&lt;br /&gt;
| 0x001E....&lt;br /&gt;
| Wrapper for cdc:DSP cmd 5&lt;br /&gt;
|-&lt;br /&gt;
| 0x001F0000&lt;br /&gt;
| GetHeadphoneStatus. Wrapper for cdc:DSP cmd 6&lt;br /&gt;
|-&lt;br /&gt;
| 0x0020....&lt;br /&gt;
| Wrapper for cdc:DSP cmd 8&lt;br /&gt;
|-&lt;br /&gt;
| 0x00210000&lt;br /&gt;
| GetIsDspOccupied returns a byte (can be 1 or 0) can be set to 1 in LoadComponent&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is the main service for playing audio. The [[CSND_Services|CSND]] service can be used for playing audio as well, however most processes use this DSP service for playing audio. The DSP and CSND hardware can play audio simultaneously.&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=DSP_Services&amp;diff=12152</id>
		<title>DSP Services</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=DSP_Services&amp;diff=12152"/>
		<updated>2015-03-29T04:41:38Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: Undo revision 12141 by Purpasmart (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Services]]&lt;br /&gt;
= DSP service &amp;quot;dsp::DSP&amp;quot; =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010040&lt;br /&gt;
| RecvData(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010080&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020000&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020040&lt;br /&gt;
| RecvDataIsReady(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00030080&lt;br /&gt;
| SendData(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040040&lt;br /&gt;
| SendDataIsEmpty(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050100&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0006...&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0007....&lt;br /&gt;
| [[DSP:WriteReg0x10|WriteReg0x10]] SetSemaphore&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080000&lt;br /&gt;
| GetSemaphore&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090040&lt;br /&gt;
| ClearSemaphore&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A....&lt;br /&gt;
| WriteReg0x18&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B0000&lt;br /&gt;
| CheckSemaphoreRequest&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0000&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0040&lt;br /&gt;
| [[DSP:ConvertProcessAddressFromDspDram|ConvertProcessAddressFromDspDram]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D0082&lt;br /&gt;
| [[DSP:WriteProcessPipe|WriteProcessPipe]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000E0080&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x001000C0&lt;br /&gt;
| [[DSP:ReadPipeIfPossible|ReadPipeIfPossible]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001100C2&lt;br /&gt;
| [[DSP:LoadComponent|LoadComponent]]. This requires RSA-signed DSP firmware specified via the input buffer for this command, the firmware data is eventually written to DSPmem+0(0x1FF00000).&lt;br /&gt;
|-&lt;br /&gt;
| 0x00120000&lt;br /&gt;
| UnloadComponent&lt;br /&gt;
|-&lt;br /&gt;
| 0x00130082&lt;br /&gt;
| FlushDataCache (The buffer must be located in the 0x14000000 region)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 0x00140082&lt;br /&gt;
| InvalidateDCache (The buffer must be located in either the 0x14000000 region, or the DSP memory region)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00150082&lt;br /&gt;
| [[DSP:RegisterInterruptEvents|RegisterInterruptEvents(param0, param1, 0, eventhandle)]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00160000&lt;br /&gt;
| [[DSP:GetSemaphoreEventHandle|GetSemaphoreEventHandle]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00170040&lt;br /&gt;
| [[DSP:SetSemaphoreMask|SetSemaphoreMask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00180040&lt;br /&gt;
| GetPhysicalAddress (0x14000000+ -&amp;gt; 0x20000000+, 0x1FF00000+ -&amp;gt; 0x1FF00000+, 0x08000000-0x0E000000 -&amp;gt; 0x00000000+, 0 otherwise)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00190040&lt;br /&gt;
| GetVirtualAddress (0x20000000+ -&amp;gt; 0x14000000+, 0x1FF00000+ -&amp;gt; 0x1FF00000+, 0 otherwise)&lt;br /&gt;
|-&lt;br /&gt;
| 0x001A0042&lt;br /&gt;
| SetIirFilterI2S1. Wrapper for cdc:DSP cmd 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x001B0042&lt;br /&gt;
| SetIirFilterI2S1. Wrapper for cdc:DSP cmd 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x001C0082&lt;br /&gt;
| SetIirFilterEQ. Wrapper for cdc:DSP cmd 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x001D....&lt;br /&gt;
| Wrapper for cdc:DSP cmd 4&lt;br /&gt;
|-&lt;br /&gt;
| 0x001E....&lt;br /&gt;
| Wrapper for cdc:DSP cmd 5&lt;br /&gt;
|-&lt;br /&gt;
| 0x001F0000&lt;br /&gt;
| GetHeadphoneStatus. Wrapper for cdc:DSP cmd 6&lt;br /&gt;
|-&lt;br /&gt;
| 0x0020....&lt;br /&gt;
| Wrapper for cdc:DSP cmd 8&lt;br /&gt;
|-&lt;br /&gt;
| 0x00210000&lt;br /&gt;
| GetIsDspOccupied returns a byte (can be 1 or 0) can be set to 1 in LoadComponent&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is the main service for playing audio. The [[CSND_Services|CSND]] service can be used for playing audio as well, however most processes use this DSP service for playing audio. The DSP and CSND hardware can play audio simultaneously.&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=DSP_Services&amp;diff=12151</id>
		<title>DSP Services</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=DSP_Services&amp;diff=12151"/>
		<updated>2015-03-29T04:40:49Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: Undo revision 12143 by Purpasmart (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Services]]&lt;br /&gt;
= DSP service &amp;quot;dsp::DSP&amp;quot; =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010040&lt;br /&gt;
| RecvData(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010080&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020000&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020040&lt;br /&gt;
| RecvDataIsReady(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00030080&lt;br /&gt;
| SendData(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040040&lt;br /&gt;
| SendDataIsEmpty(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050100&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0006...&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0007....&lt;br /&gt;
| [[DSP:WriteReg0x10|WriteReg0x10]] SetSemaphore&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080000&lt;br /&gt;
| GetSemaphore&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080082&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090040&lt;br /&gt;
| ClearSemaphore&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A....&lt;br /&gt;
| WriteReg0x18&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B0000&lt;br /&gt;
| CheckSemaphoreRequest&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0000&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0040&lt;br /&gt;
| [[DSP:ConvertProcessAddressFromDspDram|ConvertProcessAddressFromDspDram]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D0082&lt;br /&gt;
| [[DSP:WriteProcessPipe|WriteProcessPipe]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000E0080&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x001000C0&lt;br /&gt;
| [[DSP:ReadPipeIfPossible|ReadPipeIfPossible]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001100C2&lt;br /&gt;
| [[DSP:LoadComponent|LoadComponent]]. This requires RSA-signed DSP firmware specified via the input buffer for this command, the firmware data is eventually written to DSPmem+0(0x1FF00000).&lt;br /&gt;
|-&lt;br /&gt;
| 0x00120000&lt;br /&gt;
| UnloadComponent&lt;br /&gt;
|-&lt;br /&gt;
| 0x00130082&lt;br /&gt;
| FlushDataCache (The buffer must be located in the 0x14000000 region)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 0x00140082&lt;br /&gt;
| InvalidateDCache (The buffer must be located in either the 0x14000000 region, or the DSP memory region)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00150082&lt;br /&gt;
| [[DSP:RegisterInterruptEvents|RegisterInterruptEvents(param0, param1, 0, eventhandle)]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00160000&lt;br /&gt;
| [[DSP:GetSemaphoreEventHandle|GetSemaphoreEventHandle]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00170040&lt;br /&gt;
| [[DSP:SetSemaphoreMask|SetSemaphoreMask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00180040&lt;br /&gt;
| GetPhysicalAddress (0x14000000+ -&amp;gt; 0x20000000+, 0x1FF00000+ -&amp;gt; 0x1FF00000+, 0x08000000-0x0E000000 -&amp;gt; 0x00000000+, 0 otherwise)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00190040&lt;br /&gt;
| GetVirtualAddress (0x20000000+ -&amp;gt; 0x14000000+, 0x1FF00000+ -&amp;gt; 0x1FF00000+, 0 otherwise)&lt;br /&gt;
|-&lt;br /&gt;
| 0x001A0042&lt;br /&gt;
| SetIirFilterI2S1. Wrapper for cdc:DSP cmd 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x001B0042&lt;br /&gt;
| SetIirFilterI2S1. Wrapper for cdc:DSP cmd 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x001C0082&lt;br /&gt;
| SetIirFilterEQ. Wrapper for cdc:DSP cmd 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x001D....&lt;br /&gt;
| Wrapper for cdc:DSP cmd 4&lt;br /&gt;
|-&lt;br /&gt;
| 0x001E....&lt;br /&gt;
| Wrapper for cdc:DSP cmd 5&lt;br /&gt;
|-&lt;br /&gt;
| 0x001F0000&lt;br /&gt;
| GetHeadphoneStatus. Wrapper for cdc:DSP cmd 6&lt;br /&gt;
|-&lt;br /&gt;
| 0x0020....&lt;br /&gt;
| Wrapper for cdc:DSP cmd 8&lt;br /&gt;
|-&lt;br /&gt;
| 0x00210000&lt;br /&gt;
| GetIsDspOccupied returns a byte (can be 1 or 0) can be set to 1 in LoadComponent&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is the main service for playing audio. The [[CSND_Services|CSND]] service can be used for playing audio as well, however most processes use this DSP service for playing audio. The DSP and CSND hardware can play audio simultaneously.&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=DSP_Services&amp;diff=12150</id>
		<title>DSP Services</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=DSP_Services&amp;diff=12150"/>
		<updated>2015-03-29T04:40:00Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: Undo revision 12146 by Purpasmart (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Services]]&lt;br /&gt;
= DSP service &amp;quot;dsp::DSP&amp;quot; =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010040&lt;br /&gt;
| RecvData(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010080&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020000&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020040&lt;br /&gt;
| RecvDataIsReady(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00030080&lt;br /&gt;
| SendData(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040040&lt;br /&gt;
| SendDataIsEmpty(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050100&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0006...&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0007....&lt;br /&gt;
| [[DSP:WriteReg0x10|WriteReg0x10]] SetSemaphore&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080000&lt;br /&gt;
| GetSemaphore&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080082&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090040&lt;br /&gt;
| ClearSemaphore&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A....&lt;br /&gt;
| WriteReg0x18&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B0000&lt;br /&gt;
| CheckSemaphoreRequest&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0000&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0040&lt;br /&gt;
| [[DSP:ConvertProcessAddressFromDspDram|ConvertProcessAddressFromDspDram]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D0082&lt;br /&gt;
| [[DSP:WriteProcessPipe|WriteProcessPipe]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000E0080&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x001000C0&lt;br /&gt;
| [[DSP:ReadPipeIfPossible|ReadPipeIfPossible]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001100C2&lt;br /&gt;
| [[DSP:LoadComponent|LoadComponent]]. This requires RSA-signed DSP firmware specified via the input buffer for this command, the firmware data is eventually written to DSPmem+0(0x1FF00000).&lt;br /&gt;
|-&lt;br /&gt;
| 0x00120000&lt;br /&gt;
| UnloadComponent&lt;br /&gt;
|-&lt;br /&gt;
| 0x00130082&lt;br /&gt;
| FlushDataCache (The buffer must be located in the 0x14000000 region)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 0x00140082&lt;br /&gt;
| InvalidateDCache (The buffer must be located in either the 0x14000000 region, or the DSP memory region)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00150082&lt;br /&gt;
| [[DSP:RegisterInterruptEvents|RegisterInterruptEvents(param0, param1, 0, eventhandle)]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00160000&lt;br /&gt;
| [[DSP:GetSemaphoreEventHandle|GetSemaphoreEventHandle]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00170040&lt;br /&gt;
| [[DSP:SetSemaphoreMask|SetSemaphoreMask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00180040&lt;br /&gt;
| GetPhysicalAddress (0x14000000+ -&amp;gt; 0x20000000+, 0x1FF00000+ -&amp;gt; 0x1FF00000+, 0x08000000-0x0E000000 -&amp;gt; 0x00000000+, 0 otherwise)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00190040&lt;br /&gt;
| GetVirtualAddress (0x20000000+ -&amp;gt; 0x14000000+, 0x1FF00000+ -&amp;gt; 0x1FF00000+, 0 otherwise)&lt;br /&gt;
|-&lt;br /&gt;
| 0x001A0042&lt;br /&gt;
| SetIirFilterI2S1. Wrapper for cdc:DSP cmd 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x001B0042&lt;br /&gt;
| SetIirFilterI2S1. Wrapper for cdc:DSP cmd 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x001C0082&lt;br /&gt;
| SetIirFilterEQ. Wrapper for cdc:DSP cmd 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x001D....&lt;br /&gt;
| Wrapper for cdc:DSP cmd 4&lt;br /&gt;
|-&lt;br /&gt;
| 0x001E....&lt;br /&gt;
| Wrapper for cdc:DSP cmd 5&lt;br /&gt;
|-&lt;br /&gt;
| 0x001F0000&lt;br /&gt;
| GetHeadphoneStatus. Wrapper for cdc:DSP cmd 6&lt;br /&gt;
|-&lt;br /&gt;
| 0x0020....&lt;br /&gt;
| Wrapper for cdc:DSP cmd 8&lt;br /&gt;
|-&lt;br /&gt;
| 0x00210000&lt;br /&gt;
| GetIsDspOccupied returns a byte (can be 1 or 0) can be set to 1 in LoadComponent&lt;br /&gt;
|-&lt;br /&gt;
| 0x080200C2&lt;br /&gt;
| ????&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is the main service for playing audio. The [[CSND_Services|CSND]] service can be used for playing audio as well, however most processes use this DSP service for playing audio. The DSP and CSND hardware can play audio simultaneously.&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=DSP_Services&amp;diff=12149</id>
		<title>DSP Services</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=DSP_Services&amp;diff=12149"/>
		<updated>2015-03-29T04:35:11Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: Undo revision 12148 by Purpasmart (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Services]]&lt;br /&gt;
= DSP service &amp;quot;dsp::DSP&amp;quot; =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010040&lt;br /&gt;
| RecvData(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010080&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020000&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020040&lt;br /&gt;
| RecvDataIsReady(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00030080&lt;br /&gt;
| SendData(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040040&lt;br /&gt;
| SendDataIsEmpty(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050100&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0006...&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0007....&lt;br /&gt;
| [[DSP:WriteReg0x10|WriteReg0x10]] SetSemaphore&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080000&lt;br /&gt;
| GetSemaphore&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080082&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090040&lt;br /&gt;
| ClearSemaphore&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A....&lt;br /&gt;
| WriteReg0x18&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B0000&lt;br /&gt;
| CheckSemaphoreRequest&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0000&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0040&lt;br /&gt;
| [[DSP:ConvertProcessAddressFromDspDram|ConvertProcessAddressFromDspDram]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D0082&lt;br /&gt;
| [[DSP:WriteProcessPipe|WriteProcessPipe]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000E0080&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x001000C0&lt;br /&gt;
| [[DSP:ReadPipeIfPossible|ReadPipeIfPossible]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001100C2&lt;br /&gt;
| [[DSP:LoadComponent|LoadComponent]]. This requires RSA-signed DSP firmware specified via the input buffer for this command, the firmware data is eventually written to DSPmem+0(0x1FF00000).&lt;br /&gt;
|-&lt;br /&gt;
| 0x00120000&lt;br /&gt;
| UnloadComponent&lt;br /&gt;
|-&lt;br /&gt;
| 0x00130082&lt;br /&gt;
| FlushDataCache (The buffer must be located in the 0x14000000 region)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 0x00140082&lt;br /&gt;
| InvalidateDCache (The buffer must be located in either the 0x14000000 region, or the DSP memory region)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00150082&lt;br /&gt;
| [[DSP:RegisterInterruptEvents|RegisterInterruptEvents(param0, param1, 0, eventhandle)]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00160000&lt;br /&gt;
| [[DSP:GetSemaphoreEventHandle|GetSemaphoreEventHandle]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00170040&lt;br /&gt;
| [[DSP:SetSemaphoreMask|SetSemaphoreMask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00170042&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x00180040&lt;br /&gt;
| GetPhysicalAddress (0x14000000+ -&amp;gt; 0x20000000+, 0x1FF00000+ -&amp;gt; 0x1FF00000+, 0x08000000-0x0E000000 -&amp;gt; 0x00000000+, 0 otherwise)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00190040&lt;br /&gt;
| GetVirtualAddress (0x20000000+ -&amp;gt; 0x14000000+, 0x1FF00000+ -&amp;gt; 0x1FF00000+, 0 otherwise)&lt;br /&gt;
|-&lt;br /&gt;
| 0x001A0042&lt;br /&gt;
| SetIirFilterI2S1. Wrapper for cdc:DSP cmd 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x001B0042&lt;br /&gt;
| SetIirFilterI2S1. Wrapper for cdc:DSP cmd 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x001C0082&lt;br /&gt;
| SetIirFilterEQ. Wrapper for cdc:DSP cmd 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x001D....&lt;br /&gt;
| Wrapper for cdc:DSP cmd 4&lt;br /&gt;
|-&lt;br /&gt;
| 0x001E....&lt;br /&gt;
| Wrapper for cdc:DSP cmd 5&lt;br /&gt;
|-&lt;br /&gt;
| 0x001F0000&lt;br /&gt;
| GetHeadphoneStatus. Wrapper for cdc:DSP cmd 6&lt;br /&gt;
|-&lt;br /&gt;
| 0x0020....&lt;br /&gt;
| Wrapper for cdc:DSP cmd 8&lt;br /&gt;
|-&lt;br /&gt;
| 0x00210000&lt;br /&gt;
| GetIsDspOccupied returns a byte (can be 1 or 0) can be set to 1 in LoadComponent&lt;br /&gt;
|-&lt;br /&gt;
| 0x080200C2&lt;br /&gt;
| ????&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is the main service for playing audio. The [[CSND_Services|CSND]] service can be used for playing audio as well, however most processes use this DSP service for playing audio. The DSP and CSND hardware can play audio simultaneously.&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=DSP_Services&amp;diff=12148</id>
		<title>DSP Services</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=DSP_Services&amp;diff=12148"/>
		<updated>2015-03-29T02:17:19Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Services]]&lt;br /&gt;
= DSP service &amp;quot;dsp::DSP&amp;quot; =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010040&lt;br /&gt;
| RecvData(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010080&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020000&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020040&lt;br /&gt;
| RecvDataIsReady(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00030080&lt;br /&gt;
| SendData(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040040&lt;br /&gt;
| SendDataIsEmpty(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050100&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0006...&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0007....&lt;br /&gt;
| [[DSP:WriteReg0x10|WriteReg0x10]] SetSemaphore&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080000&lt;br /&gt;
| GetSemaphore&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080082&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090040&lt;br /&gt;
| ClearSemaphore&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A....&lt;br /&gt;
| WriteReg0x18&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B0000&lt;br /&gt;
| CheckSemaphoreRequest&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0000&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0040&lt;br /&gt;
| [[DSP:ConvertProcessAddressFromDspDram|ConvertProcessAddressFromDspDram]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D0082&lt;br /&gt;
| [[DSP:WriteProcessPipe|WriteProcessPipe]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000E0080&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x001000C0&lt;br /&gt;
| [[DSP:ReadPipeIfPossible|ReadPipeIfPossible]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001100C2&lt;br /&gt;
| [[DSP:LoadComponent|LoadComponent]]. This requires RSA-signed DSP firmware specified via the input buffer for this command, the firmware data is eventually written to DSPmem+0(0x1FF00000).&lt;br /&gt;
|-&lt;br /&gt;
| 0x00120000&lt;br /&gt;
| UnloadComponent&lt;br /&gt;
|-&lt;br /&gt;
| 0x00130082&lt;br /&gt;
| FlushDataCache (The buffer must be located in the 0x14000000 region)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 0x00140082&lt;br /&gt;
| InvalidateDCache (The buffer must be located in either the 0x14000000 region, or the DSP memory region)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00150082&lt;br /&gt;
| [[DSP:RegisterInterruptEvents|RegisterInterruptEvents(param0, param1, 0, eventhandle)]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00160000&lt;br /&gt;
| [[DSP:GetSemaphoreEventHandle|GetSemaphoreEventHandle]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00170040&lt;br /&gt;
| [[DSP:SetSemaphoreMask|SetSemaphoreMask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00170042&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x00180040&lt;br /&gt;
| GetPhysicalAddress (0x14000000+ -&amp;gt; 0x20000000+, 0x1FF00000+ -&amp;gt; 0x1FF00000+, 0x08000000-0x0E000000 -&amp;gt; 0x00000000+, 0 otherwise)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00190040&lt;br /&gt;
| GetVirtualAddress (0x20000000+ -&amp;gt; 0x14000000+, 0x1FF00000+ -&amp;gt; 0x1FF00000+, 0 otherwise)&lt;br /&gt;
|-&lt;br /&gt;
| 0x001A0042&lt;br /&gt;
| SetIirFilterI2S1. Wrapper for cdc:DSP cmd 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x001B0042&lt;br /&gt;
| SetIirFilterI2S1. Wrapper for cdc:DSP cmd 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x001C0082&lt;br /&gt;
| SetIirFilterEQ. Wrapper for cdc:DSP cmd 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x001D....&lt;br /&gt;
| Wrapper for cdc:DSP cmd 4&lt;br /&gt;
|-&lt;br /&gt;
| 0x001E....&lt;br /&gt;
| Wrapper for cdc:DSP cmd 5&lt;br /&gt;
|-&lt;br /&gt;
| 0x001F0000&lt;br /&gt;
| GetHeadphoneStatus. Wrapper for cdc:DSP cmd 6&lt;br /&gt;
|-&lt;br /&gt;
| 0x0020....&lt;br /&gt;
| Wrapper for cdc:DSP cmd 8&lt;br /&gt;
|-&lt;br /&gt;
| 0x00210000&lt;br /&gt;
| GetIsDspOccupied returns a byte (can be 1 or 0) can be set to 1 in LoadComponent&lt;br /&gt;
|-&lt;br /&gt;
| 0x080200C2&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x080C00C2&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x080E0080&lt;br /&gt;
| ????&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is the main service for playing audio. The [[CSND_Services|CSND]] service can be used for playing audio as well, however most processes use this DSP service for playing audio. The DSP and CSND hardware can play audio simultaneously.&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Friend_Services&amp;diff=12147</id>
		<title>Friend Services</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Friend_Services&amp;diff=12147"/>
		<updated>2015-03-29T02:08:15Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Services]]&lt;br /&gt;
= Friend Service &amp;quot;frd:u&amp;quot; =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050000&lt;br /&gt;
| [[FRDU:GetFriendKey|GetFriendKey]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080000&lt;br /&gt;
| [[FRDU:GetMyPresence|GetMyPresence]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00100040&lt;br /&gt;
| [[FRDU:GetPassword|GetPassword]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00130142&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x00140044&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x00150042&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x00190042&lt;br /&gt;
| [[FRDU:GetFriendFavoriteGame|GetFriendFavoriteGame]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001A00C4&lt;br /&gt;
| [[FRDU:GetFriendInfo|GetFriendInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001B0080&lt;br /&gt;
| [[FRDU:IsOnFriendList|IsOnFriendList]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001C0042&lt;br /&gt;
| [[FRDU:DecodeLocalFriendCode|DecodeLocalFriendCode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001D0002&lt;br /&gt;
| [[FRDU:SetCurrentlyPlayingText|SetCurrentlyPlayingText]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00320042&lt;br /&gt;
| [[FRDU:SetClientSdkVersion|SetClientSdkVersion]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=DSP_Services&amp;diff=12146</id>
		<title>DSP Services</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=DSP_Services&amp;diff=12146"/>
		<updated>2015-03-29T01:10:21Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Services]]&lt;br /&gt;
= DSP service &amp;quot;dsp::DSP&amp;quot; =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010040&lt;br /&gt;
| RecvData(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010080&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020000&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020040&lt;br /&gt;
| RecvDataIsReady(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00030080&lt;br /&gt;
| SendData(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040040&lt;br /&gt;
| SendDataIsEmpty(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050100&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0006...&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0007....&lt;br /&gt;
| [[DSP:WriteReg0x10|WriteReg0x10]] SetSemaphore&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080000&lt;br /&gt;
| GetSemaphore&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080082&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090040&lt;br /&gt;
| ClearSemaphore&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A....&lt;br /&gt;
| WriteReg0x18&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B0000&lt;br /&gt;
| CheckSemaphoreRequest&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0000&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0040&lt;br /&gt;
| [[DSP:ConvertProcessAddressFromDspDram|ConvertProcessAddressFromDspDram]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D0082&lt;br /&gt;
| [[DSP:WriteProcessPipe|WriteProcessPipe]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000E0080&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x001000C0&lt;br /&gt;
| [[DSP:ReadPipeIfPossible|ReadPipeIfPossible]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001100C2&lt;br /&gt;
| [[DSP:LoadComponent|LoadComponent]]. This requires RSA-signed DSP firmware specified via the input buffer for this command, the firmware data is eventually written to DSPmem+0(0x1FF00000).&lt;br /&gt;
|-&lt;br /&gt;
| 0x00120000&lt;br /&gt;
| UnloadComponent&lt;br /&gt;
|-&lt;br /&gt;
| 0x00130082&lt;br /&gt;
| FlushDataCache (The buffer must be located in the 0x14000000 region)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 0x00140082&lt;br /&gt;
| InvalidateDCache (The buffer must be located in either the 0x14000000 region, or the DSP memory region)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00150082&lt;br /&gt;
| [[DSP:RegisterInterruptEvents|RegisterInterruptEvents(param0, param1, 0, eventhandle)]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00160000&lt;br /&gt;
| [[DSP:GetSemaphoreEventHandle|GetSemaphoreEventHandle]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00170040&lt;br /&gt;
| [[DSP:SetSemaphoreMask|SetSemaphoreMask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00170042&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x00180040&lt;br /&gt;
| GetPhysicalAddress (0x14000000+ -&amp;gt; 0x20000000+, 0x1FF00000+ -&amp;gt; 0x1FF00000+, 0x08000000-0x0E000000 -&amp;gt; 0x00000000+, 0 otherwise)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00190040&lt;br /&gt;
| GetVirtualAddress (0x20000000+ -&amp;gt; 0x14000000+, 0x1FF00000+ -&amp;gt; 0x1FF00000+, 0 otherwise)&lt;br /&gt;
|-&lt;br /&gt;
| 0x001A0042&lt;br /&gt;
| SetIirFilterI2S1. Wrapper for cdc:DSP cmd 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x001B0042&lt;br /&gt;
| SetIirFilterI2S1. Wrapper for cdc:DSP cmd 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x001C0082&lt;br /&gt;
| SetIirFilterEQ. Wrapper for cdc:DSP cmd 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x001D....&lt;br /&gt;
| Wrapper for cdc:DSP cmd 4&lt;br /&gt;
|-&lt;br /&gt;
| 0x001E....&lt;br /&gt;
| Wrapper for cdc:DSP cmd 5&lt;br /&gt;
|-&lt;br /&gt;
| 0x001F0000&lt;br /&gt;
| GetHeadphoneStatus. Wrapper for cdc:DSP cmd 6&lt;br /&gt;
|-&lt;br /&gt;
| 0x0020....&lt;br /&gt;
| Wrapper for cdc:DSP cmd 8&lt;br /&gt;
|-&lt;br /&gt;
| 0x00210000&lt;br /&gt;
| GetIsDspOccupied returns a byte (can be 1 or 0) can be set to 1 in LoadComponent&lt;br /&gt;
|-&lt;br /&gt;
| 0x080200C2&lt;br /&gt;
| ????&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is the main service for playing audio. The [[CSND_Services|CSND]] service can be used for playing audio as well, however most processes use this DSP service for playing audio. The DSP and CSND hardware can play audio simultaneously.&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=DSP_Services&amp;diff=12143</id>
		<title>DSP Services</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=DSP_Services&amp;diff=12143"/>
		<updated>2015-03-29T00:42:28Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Services]]&lt;br /&gt;
= DSP service &amp;quot;dsp::DSP&amp;quot; =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010040&lt;br /&gt;
| RecvData(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010080&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020000&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020040&lt;br /&gt;
| RecvDataIsReady(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00030080&lt;br /&gt;
| SendData(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040040&lt;br /&gt;
| SendDataIsEmpty(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050100&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0006...&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0007....&lt;br /&gt;
| [[DSP:WriteReg0x10|WriteReg0x10]] SetSemaphore&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080000&lt;br /&gt;
| GetSemaphore&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080082&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090040&lt;br /&gt;
| ClearSemaphore&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A....&lt;br /&gt;
| WriteReg0x18&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B0000&lt;br /&gt;
| CheckSemaphoreRequest&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0000&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0040&lt;br /&gt;
| [[DSP:ConvertProcessAddressFromDspDram|ConvertProcessAddressFromDspDram]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D0082&lt;br /&gt;
| [[DSP:WriteProcessPipe|WriteProcessPipe]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000E0080&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x001000C0&lt;br /&gt;
| [[DSP:ReadPipeIfPossible|ReadPipeIfPossible]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001100C2&lt;br /&gt;
| [[DSP:LoadComponent|LoadComponent]]. This requires RSA-signed DSP firmware specified via the input buffer for this command, the firmware data is eventually written to DSPmem+0(0x1FF00000).&lt;br /&gt;
|-&lt;br /&gt;
| 0x00120000&lt;br /&gt;
| UnloadComponent&lt;br /&gt;
|-&lt;br /&gt;
| 0x00130082&lt;br /&gt;
| FlushDataCache (The buffer must be located in the 0x14000000 region)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 0x00140082&lt;br /&gt;
| InvalidateDCache (The buffer must be located in either the 0x14000000 region, or the DSP memory region)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00150082&lt;br /&gt;
| [[DSP:RegisterInterruptEvents|RegisterInterruptEvents(param0, param1, 0, eventhandle)]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00160000&lt;br /&gt;
| [[DSP:GetSemaphoreEventHandle|GetSemaphoreEventHandle]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00170040&lt;br /&gt;
| [[DSP:SetSemaphoreMask|SetSemaphoreMask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00180040&lt;br /&gt;
| GetPhysicalAddress (0x14000000+ -&amp;gt; 0x20000000+, 0x1FF00000+ -&amp;gt; 0x1FF00000+, 0x08000000-0x0E000000 -&amp;gt; 0x00000000+, 0 otherwise)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00190040&lt;br /&gt;
| GetVirtualAddress (0x20000000+ -&amp;gt; 0x14000000+, 0x1FF00000+ -&amp;gt; 0x1FF00000+, 0 otherwise)&lt;br /&gt;
|-&lt;br /&gt;
| 0x001A0042&lt;br /&gt;
| SetIirFilterI2S1. Wrapper for cdc:DSP cmd 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x001B0042&lt;br /&gt;
| SetIirFilterI2S1. Wrapper for cdc:DSP cmd 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x001C0082&lt;br /&gt;
| SetIirFilterEQ. Wrapper for cdc:DSP cmd 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x001D....&lt;br /&gt;
| Wrapper for cdc:DSP cmd 4&lt;br /&gt;
|-&lt;br /&gt;
| 0x001E....&lt;br /&gt;
| Wrapper for cdc:DSP cmd 5&lt;br /&gt;
|-&lt;br /&gt;
| 0x001F0000&lt;br /&gt;
| GetHeadphoneStatus. Wrapper for cdc:DSP cmd 6&lt;br /&gt;
|-&lt;br /&gt;
| 0x0020....&lt;br /&gt;
| Wrapper for cdc:DSP cmd 8&lt;br /&gt;
|-&lt;br /&gt;
| 0x00210000&lt;br /&gt;
| GetIsDspOccupied returns a byte (can be 1 or 0) can be set to 1 in LoadComponent&lt;br /&gt;
|-&lt;br /&gt;
| 0x080200C2&lt;br /&gt;
| ????&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is the main service for playing audio. The [[CSND_Services|CSND]] service can be used for playing audio as well, however most processes use this DSP service for playing audio. The DSP and CSND hardware can play audio simultaneously.&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=DSP_Services&amp;diff=12141</id>
		<title>DSP Services</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=DSP_Services&amp;diff=12141"/>
		<updated>2015-03-28T21:56:01Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Services]]&lt;br /&gt;
= DSP service &amp;quot;dsp::DSP&amp;quot; =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010040&lt;br /&gt;
| RecvData(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010080&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020000&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020040&lt;br /&gt;
| RecvDataIsReady(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00030080&lt;br /&gt;
| SendData(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040040&lt;br /&gt;
| SendDataIsEmpty(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050100&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0006...&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0007....&lt;br /&gt;
| [[DSP:WriteReg0x10|WriteReg0x10]] SetSemaphore&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080000&lt;br /&gt;
| GetSemaphore&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080082&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090040&lt;br /&gt;
| ClearSemaphore&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A....&lt;br /&gt;
| WriteReg0x18&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B0000&lt;br /&gt;
| CheckSemaphoreRequest&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0000&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0040&lt;br /&gt;
| [[DSP:ConvertProcessAddressFromDspDram|ConvertProcessAddressFromDspDram]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D0082&lt;br /&gt;
| [[DSP:WriteProcessPipe|WriteProcessPipe]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000E0080&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x001000C0&lt;br /&gt;
| [[DSP:ReadPipeIfPossible|ReadPipeIfPossible]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001100C2&lt;br /&gt;
| [[DSP:LoadComponent|LoadComponent]]. This requires RSA-signed DSP firmware specified via the input buffer for this command, the firmware data is eventually written to DSPmem+0(0x1FF00000).&lt;br /&gt;
|-&lt;br /&gt;
| 0x00120000&lt;br /&gt;
| UnloadComponent&lt;br /&gt;
|-&lt;br /&gt;
| 0x00130082&lt;br /&gt;
| FlushDataCache (The buffer must be located in the 0x14000000 region)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 0x00140082&lt;br /&gt;
| InvalidateDCache (The buffer must be located in either the 0x14000000 region, or the DSP memory region)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00150082&lt;br /&gt;
| [[DSP:RegisterInterruptEvents|RegisterInterruptEvents(param0, param1, 0, eventhandle)]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00160000&lt;br /&gt;
| [[DSP:GetSemaphoreEventHandle|GetSemaphoreEventHandle]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00170040&lt;br /&gt;
| [[DSP:SetSemaphoreMask|SetSemaphoreMask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00180040&lt;br /&gt;
| GetPhysicalAddress (0x14000000+ -&amp;gt; 0x20000000+, 0x1FF00000+ -&amp;gt; 0x1FF00000+, 0x08000000-0x0E000000 -&amp;gt; 0x00000000+, 0 otherwise)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00190040&lt;br /&gt;
| GetVirtualAddress (0x20000000+ -&amp;gt; 0x14000000+, 0x1FF00000+ -&amp;gt; 0x1FF00000+, 0 otherwise)&lt;br /&gt;
|-&lt;br /&gt;
| 0x001A0042&lt;br /&gt;
| SetIirFilterI2S1. Wrapper for cdc:DSP cmd 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x001B0042&lt;br /&gt;
| SetIirFilterI2S1. Wrapper for cdc:DSP cmd 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x001C0082&lt;br /&gt;
| SetIirFilterEQ. Wrapper for cdc:DSP cmd 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x001D....&lt;br /&gt;
| Wrapper for cdc:DSP cmd 4&lt;br /&gt;
|-&lt;br /&gt;
| 0x001E....&lt;br /&gt;
| Wrapper for cdc:DSP cmd 5&lt;br /&gt;
|-&lt;br /&gt;
| 0x001F0000&lt;br /&gt;
| GetHeadphoneStatus. Wrapper for cdc:DSP cmd 6&lt;br /&gt;
|-&lt;br /&gt;
| 0x0020....&lt;br /&gt;
| Wrapper for cdc:DSP cmd 8&lt;br /&gt;
|-&lt;br /&gt;
| 0x00210000&lt;br /&gt;
| GetIsDspOccupied returns a byte (can be 1 or 0) can be set to 1 in LoadComponent&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is the main service for playing audio. The [[CSND_Services|CSND]] service can be used for playing audio as well, however most processes use this DSP service for playing audio. The DSP and CSND hardware can play audio simultaneously.&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=DSP_Services&amp;diff=12139</id>
		<title>DSP Services</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=DSP_Services&amp;diff=12139"/>
		<updated>2015-03-28T19:58:28Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Services]]&lt;br /&gt;
= DSP service &amp;quot;dsp::DSP&amp;quot; =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010040&lt;br /&gt;
| RecvData(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010080&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020000&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020040&lt;br /&gt;
| RecvDataIsReady(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00030080&lt;br /&gt;
| SendData(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040040&lt;br /&gt;
| SendDataIsEmpty(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050100&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0006...&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0007....&lt;br /&gt;
| [[DSP:WriteReg0x10|WriteReg0x10]] SetSemaphore&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080000&lt;br /&gt;
| GetSemaphore&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090040&lt;br /&gt;
| ClearSemaphore&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A....&lt;br /&gt;
| WriteReg0x18&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B0000&lt;br /&gt;
| CheckSemaphoreRequest&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0000&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0040&lt;br /&gt;
| [[DSP:ConvertProcessAddressFromDspDram|ConvertProcessAddressFromDspDram]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D0082&lt;br /&gt;
| [[DSP:WriteProcessPipe|WriteProcessPipe]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000E0080&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x001000C0&lt;br /&gt;
| [[DSP:ReadPipeIfPossible|ReadPipeIfPossible]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001100C2&lt;br /&gt;
| [[DSP:LoadComponent|LoadComponent]]. This requires RSA-signed DSP firmware specified via the input buffer for this command, the firmware data is eventually written to DSPmem+0(0x1FF00000).&lt;br /&gt;
|-&lt;br /&gt;
| 0x00120000&lt;br /&gt;
| UnloadComponent&lt;br /&gt;
|-&lt;br /&gt;
| 0x00130082&lt;br /&gt;
| FlushDataCache (The buffer must be located in the 0x14000000 region)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 0x00140082&lt;br /&gt;
| InvalidateDCache (The buffer must be located in either the 0x14000000 region, or the DSP memory region)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00150082&lt;br /&gt;
| [[DSP:RegisterInterruptEvents|RegisterInterruptEvents(param0, param1, 0, eventhandle)]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00160000&lt;br /&gt;
| [[DSP:GetSemaphoreEventHandle|GetSemaphoreEventHandle]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00170040&lt;br /&gt;
| [[DSP:SetSemaphoreMask|SetSemaphoreMask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00180040&lt;br /&gt;
| GetPhysicalAddress (0x14000000+ -&amp;gt; 0x20000000+, 0x1FF00000+ -&amp;gt; 0x1FF00000+, 0x08000000-0x0E000000 -&amp;gt; 0x00000000+, 0 otherwise)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00190040&lt;br /&gt;
| GetVirtualAddress (0x20000000+ -&amp;gt; 0x14000000+, 0x1FF00000+ -&amp;gt; 0x1FF00000+, 0 otherwise)&lt;br /&gt;
|-&lt;br /&gt;
| 0x001A0042&lt;br /&gt;
| SetIirFilterI2S1. Wrapper for cdc:DSP cmd 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x001B0042&lt;br /&gt;
| SetIirFilterI2S1. Wrapper for cdc:DSP cmd 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x001C0082&lt;br /&gt;
| SetIirFilterEQ. Wrapper for cdc:DSP cmd 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x001D....&lt;br /&gt;
| Wrapper for cdc:DSP cmd 4&lt;br /&gt;
|-&lt;br /&gt;
| 0x001E....&lt;br /&gt;
| Wrapper for cdc:DSP cmd 5&lt;br /&gt;
|-&lt;br /&gt;
| 0x001F0000&lt;br /&gt;
| GetHeadphoneStatus. Wrapper for cdc:DSP cmd 6&lt;br /&gt;
|-&lt;br /&gt;
| 0x0020....&lt;br /&gt;
| Wrapper for cdc:DSP cmd 8&lt;br /&gt;
|-&lt;br /&gt;
| 0x00210000&lt;br /&gt;
| GetIsDspOccupied returns a byte (can be 1 or 0) can be set to 1 in LoadComponent&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is the main service for playing audio. The [[CSND_Services|CSND]] service can be used for playing audio as well, however most processes use this DSP service for playing audio. The DSP and CSND hardware can play audio simultaneously.&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=DSP_Services&amp;diff=12136</id>
		<title>DSP Services</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=DSP_Services&amp;diff=12136"/>
		<updated>2015-03-28T19:43:21Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: /* DSP service &amp;quot;dsp::DSP&amp;quot; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Services]]&lt;br /&gt;
= DSP service &amp;quot;dsp::DSP&amp;quot; =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010040&lt;br /&gt;
| RecvData(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010080&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020040&lt;br /&gt;
| RecvDataIsReady(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00030080&lt;br /&gt;
| SendData(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040040&lt;br /&gt;
| SendDataIsEmpty(chan 0-3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0005...&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0006...&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0007....&lt;br /&gt;
| [[DSP:WriteReg0x10|WriteReg0x10]] SetSemaphore&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080000&lt;br /&gt;
| GetSemaphore&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090040&lt;br /&gt;
| ClearSemaphore&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A....&lt;br /&gt;
| WriteReg0x18&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B0000&lt;br /&gt;
| CheckSemaphoreRequest&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0000&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0040&lt;br /&gt;
| [[DSP:ConvertProcessAddressFromDspDram|ConvertProcessAddressFromDspDram]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D0082&lt;br /&gt;
| [[DSP:WriteProcessPipe|WriteProcessPipe]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000E0800&lt;br /&gt;
| ????&lt;br /&gt;
|-&lt;br /&gt;
| 0x001000C0&lt;br /&gt;
| [[DSP:ReadPipeIfPossible|ReadPipeIfPossible]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001100C2&lt;br /&gt;
| [[DSP:LoadComponent|LoadComponent]]. This requires RSA-signed DSP firmware specified via the input buffer for this command, the firmware data is eventually written to DSPmem+0(0x1FF00000).&lt;br /&gt;
|-&lt;br /&gt;
| 0x00120000&lt;br /&gt;
| UnloadComponent&lt;br /&gt;
|-&lt;br /&gt;
| 0x00130082&lt;br /&gt;
| FlushDataCache (The buffer must be located in the 0x14000000 region)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 0x00140082&lt;br /&gt;
| InvalidateDCache (The buffer must be located in either the 0x14000000 region, or the DSP memory region)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00150082&lt;br /&gt;
| [[DSP:RegisterInterruptEvents|RegisterInterruptEvents(param0, param1, 0, eventhandle)]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00160000&lt;br /&gt;
| [[DSP:GetSemaphoreEventHandle|GetSemaphoreEventHandle]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00170040&lt;br /&gt;
| [[DSP:SetSemaphoreMask|SetSemaphoreMask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00180040&lt;br /&gt;
| GetPhysicalAddress (0x14000000+ -&amp;gt; 0x20000000+, 0x1FF00000+ -&amp;gt; 0x1FF00000+, 0x08000000-0x0E000000 -&amp;gt; 0x00000000+, 0 otherwise)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00190040&lt;br /&gt;
| GetVirtualAddress (0x20000000+ -&amp;gt; 0x14000000+, 0x1FF00000+ -&amp;gt; 0x1FF00000+, 0 otherwise)&lt;br /&gt;
|-&lt;br /&gt;
| 0x001A0042&lt;br /&gt;
| SetIirFilterI2S1. Wrapper for cdc:DSP cmd 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x001B0042&lt;br /&gt;
| SetIirFilterI2S1. Wrapper for cdc:DSP cmd 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x001C0082&lt;br /&gt;
| SetIirFilterEQ. Wrapper for cdc:DSP cmd 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x001D....&lt;br /&gt;
| Wrapper for cdc:DSP cmd 4&lt;br /&gt;
|-&lt;br /&gt;
| 0x001E....&lt;br /&gt;
| Wrapper for cdc:DSP cmd 5&lt;br /&gt;
|-&lt;br /&gt;
| 0x001F0000&lt;br /&gt;
| GetHeadphoneStatus. Wrapper for cdc:DSP cmd 6&lt;br /&gt;
|-&lt;br /&gt;
| 0x0020....&lt;br /&gt;
| Wrapper for cdc:DSP cmd 8&lt;br /&gt;
|-&lt;br /&gt;
| 0x00210000&lt;br /&gt;
| GetIsDspOccupied returns a byte (can be 1 or 0) can be set to 1 in LoadComponent&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is the main service for playing audio. The [[CSND_Services|CSND]] service can be used for playing audio as well, however most processes use this DSP service for playing audio. The DSP and CSND hardware can play audio simultaneously.&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Config_Savegame&amp;diff=12120</id>
		<title>Config Savegame</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Config_Savegame&amp;diff=12120"/>
		<updated>2015-03-28T02:03:52Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the format of the [[Config_Services|Cfg]] [[System_SaveData|NAND]] savegame. These blocks can be accessed with the Cfg service commands.&lt;br /&gt;
&lt;br /&gt;
==Structure of save-file &amp;quot;/config&amp;quot;==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x2&lt;br /&gt;
| Total entries&lt;br /&gt;
|-&lt;br /&gt;
| 0x2&lt;br /&gt;
| 0x2&lt;br /&gt;
| Data entries offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4558&lt;br /&gt;
| Block entries&lt;br /&gt;
|-&lt;br /&gt;
| 0x455C&lt;br /&gt;
| &lt;br /&gt;
| Data for the entries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The filesize for this /config file is 0x8000-bytes.&lt;br /&gt;
&lt;br /&gt;
==Configuration block entry ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| BlkID&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| Offset to the data for this block when size is &amp;gt;4, otherwise this word is the data for this block&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x2&lt;br /&gt;
| Size&lt;br /&gt;
|-&lt;br /&gt;
| 0xA&lt;br /&gt;
| 0x2&lt;br /&gt;
| Flags&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Configuration blocks==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  BlkID&lt;br /&gt;
!  Size&lt;br /&gt;
!  Flags&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050005&lt;br /&gt;
| 0x20&lt;br /&gt;
|?&lt;br /&gt;
| Stereo camera settings?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00070001&lt;br /&gt;
| 0x1&lt;br /&gt;
|?&lt;br /&gt;
| Sound output mode?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080000&lt;br /&gt;
| 0xC00&lt;br /&gt;
| 0x2?&lt;br /&gt;
| WiFi configuration slot 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080001&lt;br /&gt;
| 0xC00&lt;br /&gt;
| 0x2?&lt;br /&gt;
| WiFi configuration slot 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080002&lt;br /&gt;
| 0xC00&lt;br /&gt;
| 0x2?&lt;br /&gt;
| WiFi configuration slot 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090000&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x2?&lt;br /&gt;
| This contains a u64 ID, used by processes using [[NWMUDS:Initialize]]. The first word is the same as [[CfgS:GetLocalFriendCodeSeed|LocalFriendCodeSeed]], while the latter is a separate random word&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090001&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0xE&lt;br /&gt;
| This console-unique u64 used by [[Cfg:GenHashConsoleUnique|GenHashConsoleUnique]] is generated with the LocalFriendCodeSeed and with random data&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A0000&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 0xE&lt;br /&gt;
| Username&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A0001&lt;br /&gt;
| 0x2&lt;br /&gt;
| 0x2&lt;br /&gt;
| ??&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A0002&lt;br /&gt;
| 0x1&lt;br /&gt;
| 0xA&lt;br /&gt;
| Language&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B0000&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x8&lt;br /&gt;
| CountryInfo&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B0001&lt;br /&gt;
| 0x800&lt;br /&gt;
| 0x2?&lt;br /&gt;
| Country name in UTF-16, every 0x80-bytes is an entry for each language(not all entries are set)&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B0002&lt;br /&gt;
| 0x800&lt;br /&gt;
| 0x2?&lt;br /&gt;
| State name in UTF-16, every 0x80-bytes is an entry for each language&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0000&lt;br /&gt;
| 0xC0&lt;br /&gt;
|?&lt;br /&gt;
| Restricted photo exchange data, and other info&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0001&lt;br /&gt;
| 0x14&lt;br /&gt;
|?&lt;br /&gt;
| Same as above?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D0000&lt;br /&gt;
| 0x4&lt;br /&gt;
|?&lt;br /&gt;
| u16 at offset 0x0: [[SMDH#EULA_Version|EULA Version]] which was agreed to.&lt;br /&gt;
|-&lt;br /&gt;
| 0x000F0000&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x8?&lt;br /&gt;
| Unknown, used by [[NS]] on dev-units for [[SVC|svcKernelSetState]], where Type is 6. During NS startup on debug-units, NS compares the u32 from +8 in this config-block with the [[Configuration_Memory#APPMEMTYPE|APPMEMTYPE]]. When those don&#039;t match NS starts a FIRM-launch (with the same FIRM titleID as the currently running one) to boot into a FIRM with the APPMEMTYPE value from this config-block&lt;br /&gt;
|-&lt;br /&gt;
| 0x000F0004&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x8?&lt;br /&gt;
| The first u8 is the System-Model [[Cfg:GetSystemModel|value]], the last 3-bytes are unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x00110000&lt;br /&gt;
| 0x4&lt;br /&gt;
|?&lt;br /&gt;
| The low u16 indicates whether the system setup is required, such as when the system is booted for the first time or after doing a [[System Settings|System Format]]: 0 = setup required, non-zero = no setup required&lt;br /&gt;
|-&lt;br /&gt;
| 0x00110001&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0xA?&lt;br /&gt;
| TitleID of the menu to launch, used by [[NS]] on dev units (this block can be edited on dev units with [[3DS Development Unit Software#Config|Config]])&lt;br /&gt;
|-&lt;br /&gt;
| 0x00130000&lt;br /&gt;
| 0x4&lt;br /&gt;
|?&lt;br /&gt;
| If response is 0x100 then debug mode is enabled.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00160000&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x8?&lt;br /&gt;
| Unknown, first byte is used by config service-cmd [[Config_Services|0x00070040]]. (Unknown whether the last 3-bytes are used)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The developer unit TID block only exists on developer units.&lt;br /&gt;
&lt;br /&gt;
===Languages===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  ID&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| JP&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| EN&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| FR&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| DE&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| IT&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| ES&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| ZH&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| KO&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| NL&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| PT&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| RU&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===CountryInfo===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Byte&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Country code, same as DSi/Wii country codes. Value 0xFF is invalid.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===0x000A0000 Block===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Byte&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0-0x13&lt;br /&gt;
| UTF-16 username, with no NULL-terminator.&lt;br /&gt;
|-&lt;br /&gt;
| 0x14-17&lt;br /&gt;
| Usually zero?&lt;br /&gt;
|-&lt;br /&gt;
| 0x18-0x1B&lt;br /&gt;
| u32 NGWord version the username was last checked with. If this value is less than the u32 stored in the NGWord CFA &amp;quot;romfs:/version.dat&amp;quot;, the system then checks the username string with the bad-word list CFA again, then updates this field with the value from the CFA&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Services_API&amp;diff=11926</id>
		<title>Services API</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Services_API&amp;diff=11926"/>
		<updated>2015-03-15T21:02:55Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Nintendo provides application developers with an API, which communicate with certain services. Services, in this sense, are system processes running in the background which wait for incoming requests. When a process wants to communicate with a service, it first needs to get a handle to the named service, and then it can communicate with the service via interprocess communication. Each service has a name up to 8 characters, for example &amp;quot;nim:u&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Handles for services are retrieved from the service manager port, &amp;quot;srv:&amp;quot;. Services are an abstraction of ports, they operate the same way except regular ports can have their handles retrieved directly from a SVC.&lt;br /&gt;
&lt;br /&gt;
For a description of how commands and arguments are passed to services, see [[IPC Command Structure]].&lt;br /&gt;
&lt;br /&gt;
List of services:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Old3ds&lt;br /&gt;
!  Services&lt;br /&gt;
!  Service names&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;200&amp;quot; |  Notes&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Filesystem services‎]]&lt;br /&gt;
| fs:USER, fs:LDR, fs:REG&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Process Services‎]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[PXI Services‎]]&lt;br /&gt;
| PxiFS0, PxiFS1, PxiFSB, PxiFSR, PxiPM, pxi:am9, pxi:dev, pxi:mc, pxi:ps9&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Application Manager Services]]&lt;br /&gt;
| am:app, am:net, am:u, am:sys, am:pipe&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Process Manager Services]]&lt;br /&gt;
| pm:app, pm:dbg&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[NIM Services]]&lt;br /&gt;
| nim:aoc, nim:ndm, nim:s, nim:u&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Config Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[NS|NS and APT Services]]&lt;br /&gt;
| ns:s, ns:p, ns:c, APT:A, APT:S, APT:U&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[RO Services]]&lt;br /&gt;
| ldr:ro&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[NDM Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[CSND Services]]&lt;br /&gt;
| csnd:SND&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Camera Services]]&lt;br /&gt;
| cam:u, y2r:u, cam:s, cam:c, cam:q (New3DS only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Codec Services]]&lt;br /&gt;
| cdc:HID, cdc:MIC, cdc:CSN, cdc:DSP, cdc:LGY, cdc:CHK&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[DSP Services]]&lt;br /&gt;
| dsp:DSP&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[GSP Services]]&lt;br /&gt;
| gsp::Lcd, gsp::Gpu&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[IR Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[I2C Services]]&lt;br /&gt;
| i2c::MCU, i2c::CAM, i2c::LCD, i2c::DEB, i2c::HID, i2c::IR, i2c::EEP&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[GPIO Services]]&lt;br /&gt;
| gpio:CDC, gpio:MCU, gpio:HID, gpio:NWM, gpio:IR&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[HID Services]]&lt;br /&gt;
| hid:USER, hid:SPVR&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[PTM Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[NWM Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[HTTP Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[SSL Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Socket Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[AC Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Friend Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[News Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[PDN Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[SPI Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Loader Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[MCU Services]]&lt;br /&gt;
| mcu::CAM, mcu::GPU, mcu::HID, mcu::RTC, mcu::SND, mcu::NWM, mcu::HWC, mcu::PLS, mcu::CDC&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[MIC Services]]&lt;br /&gt;
| mic:u&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: red&amp;quot; | No&lt;br /&gt;
| [[NFC Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: red&amp;quot; | No&lt;br /&gt;
| [[MVD Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: red&amp;quot; | No&lt;br /&gt;
| [[QTM Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
List of PXI services:&lt;br /&gt;
* [[Filesystem services PXI]]&lt;br /&gt;
* [[Process Services PXI]]&lt;br /&gt;
* [[Application Manager Services PXI]]&lt;br /&gt;
* [[Process Manager Services PXI]]&lt;br /&gt;
* [[Development Services PXI]]&lt;br /&gt;
* [[Gamecard Services PXI]]&lt;br /&gt;
* [[Legacy FIRM PXI]] (TWL_FIRM/AGB_FIRM)&lt;br /&gt;
&lt;br /&gt;
List of ports:&lt;br /&gt;
* [[ErrDisp]]&lt;br /&gt;
* [[Services]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See [[Error codes]].&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSS_Services&amp;diff=11712</id>
		<title>BOSS Services</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSS_Services&amp;diff=11712"/>
		<updated>2015-02-18T00:45:47Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==BOSS Service &amp;quot;boss:U&amp;quot;==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A0000&lt;br /&gt;
| unknown...&lt;br /&gt;
|-&lt;br /&gt;
| 0x001E0042&lt;br /&gt;
| Task::Cancel&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020100&lt;br /&gt;
| GetStorageInfo&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0082&lt;br /&gt;
| UnregisterTask&lt;br /&gt;
|-&lt;br /&gt;
| 0x00330042&lt;br /&gt;
| StartBgImmediate&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010082&lt;br /&gt;
| unknown... (seems to always get called first)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00030000&lt;br /&gt;
| unknown...&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090040&lt;br /&gt;
| unknown...&lt;br /&gt;
|-&lt;br /&gt;
| 0x00100102&lt;br /&gt;
| unknown...&lt;br /&gt;
|-&lt;br /&gt;
| 0x002F0140&lt;br /&gt;
| unknown...&lt;br /&gt;
|-&lt;br /&gt;
| 0x00300000&lt;br /&gt;
| unknown...&lt;br /&gt;
|-&lt;br /&gt;
| 0x002700C2&lt;br /&gt;
| unknown...&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Socket_Services&amp;diff=11694</id>
		<title>Socket Services</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Socket_Services&amp;diff=11694"/>
		<updated>2015-02-15T07:26:30Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: /* Socket user service &amp;quot;soc:U&amp;quot; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Services]]&lt;br /&gt;
= Socket user service &amp;quot;soc:U&amp;quot; =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010044&lt;br /&gt;
| [[SOCU:InitializeSockets|InitializeSockets]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000200C2&lt;br /&gt;
| [[SOCU:socket|socket]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00030082&lt;br /&gt;
| [[SOCU:listen|listen]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040082&lt;br /&gt;
| [[SOCU:accept|accept]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050084&lt;br /&gt;
| [[SOCU:bind|bind]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00060084&lt;br /&gt;
| [[SOCU:connect|connect]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00070104&lt;br /&gt;
| [[SOCU:recvfrom_other|recvfrom_other]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080102&lt;br /&gt;
| [[SOCU:recvfrom|recvfrom]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090106&lt;br /&gt;
| [[SOCU:sendto_other|sendto_other]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A0106&lt;br /&gt;
| [[SOCU:sendto|sendto]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B0042&lt;br /&gt;
| [[SOCU:close|close]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0082&lt;br /&gt;
| [[SOCU:shutdown|shutdown]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D0082&lt;br /&gt;
| [[SOCU:gethostbyname|gethostbyname]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000E00C2&lt;br /&gt;
| [[SOCU:gethostbyaddr|gethostbyaddr]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000F0106&lt;br /&gt;
| This resolves the IP address(es) for the specified host-name.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00110102&lt;br /&gt;
| [[SOCU:getsockopt|getsockopt]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00120104&lt;br /&gt;
| [[SOCU:setsockopt|setsockopt]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001300C2&lt;br /&gt;
| [[SOCU:fcntl|fcntl]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00140084&lt;br /&gt;
| [[SOCU:poll|poll]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00150042&lt;br /&gt;
| [[SOCU:sockatmark|sockatmark]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00160000&lt;br /&gt;
| [[SOCU:gethostid|gethostid]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00170082&lt;br /&gt;
| [[SOCU:getsockname|getsockname]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00180082&lt;br /&gt;
| [[SOCU:getpeername|getpeername]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00190000&lt;br /&gt;
| [[SOCU:ShutdownSockets|ShutdownSockets]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001A00C0&lt;br /&gt;
| [[SOCU:GetNetworkOpt|GetNetworkOpt]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001B0040&lt;br /&gt;
| [[SOCU:ICMPSocket|ICMPSocket]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001C0104&lt;br /&gt;
| [[SOCU:ICMPPing|ICMPPing]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001D0040&lt;br /&gt;
| [[SOCU:ICMPCancel|ICMPCancel]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001E0040&lt;br /&gt;
| [[SOCU:ICMPClose|ICMPClose]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001F0040&lt;br /&gt;
| [[SOCU:GetResolverInfo|GetResolverInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00210002&lt;br /&gt;
| [[SOCU:CloseSockets|CloseSockets]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x100100C0&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10030142&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10050084&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10070102&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Socket privileged service &amp;quot;soc:P&amp;quot; =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010084&lt;br /&gt;
| [[SOCP:InitializeSockets|InitializeSockets]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020000&lt;br /&gt;
| [[SOCP:FinalizeSockets|FinalizeSockets]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000300C2&lt;br /&gt;
| [[SOCP:SetNetworkOpt|SetNetworkOpt]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040040&lt;br /&gt;
| [[SOCP:CloseSocketsForProcess|CloseSocketsForProcess]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000500C0&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 0x00060000&lt;br /&gt;
| [[SOCP:gethostid|gethostid]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00070000&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 0x00080000&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 0x00090000&lt;br /&gt;
| [[SOCP:StopInitializeSockets|StopInitializeSockets]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= struct sockaddr =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x1&lt;br /&gt;
| Total size of the entire sockaddr buffer.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1&lt;br /&gt;
| 0x1&lt;br /&gt;
| u8 sa_family&lt;br /&gt;
|-&lt;br /&gt;
| 0x2&lt;br /&gt;
| sockaddr_totalsize-0x2&lt;br /&gt;
| sa_data[]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The total buffer size is 0x8, for family AF_INET value 2. AF_INET6 seems to be value 23, the total sockaddr size for this is 0x1C. The max sockaddr buffer size which the socket module can handle is size 0x1C.&lt;br /&gt;
&lt;br /&gt;
These socket services(and defines/structures) seem to be based on the Wii sockets?&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Application_Manager_Services&amp;diff=11683</id>
		<title>Application Manager Services</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Application_Manager_Services&amp;diff=11683"/>
		<updated>2015-02-15T05:15:59Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: /* Application Manager service &amp;quot;am:app&amp;quot; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Services]]&lt;br /&gt;
&lt;br /&gt;
= Application Manager services =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010040&lt;br /&gt;
| [[AMNet:TitleIDListGetTotal|TitleIDListGetTotal]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020082&lt;br /&gt;
| [[AMNet:GetTitleIDList|GetTitleIDList]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00030084&lt;br /&gt;
| [[AMNet:ListTitles|ListTitles]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000400C0&lt;br /&gt;
| [[AM:DeleteApplicationTitle|DeleteApplicationTitle]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000500C0&lt;br /&gt;
| [[AM:GetTitleProductCode|GetTitleProductCode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080000&lt;br /&gt;
| [[AMNet:TitleIDListGetTotal3|TitleIDListGetTotal3]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090082&lt;br /&gt;
| [[AMNet:GetTitleIDList3|GetTitleIDList3]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A0000&lt;br /&gt;
| [[AMNet:GetDeviceID|GetDeviceID]] (Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x003C0000)&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D0084&lt;br /&gt;
| [[AMNet:ListTitles2|ListTitles2]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00140040&lt;br /&gt;
| [[AMNet:FinishInstallToMedia|FinishInstallToMedia]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00180080&lt;br /&gt;
| This is a wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x00470080. (unknown_u8, unknown_u8)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00190040&lt;br /&gt;
| [[AM:ReloadDBS|ReloadDBS]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001A00C0&lt;br /&gt;
| [[AM:GetDSiWareExportSize|GetDSiWareExportSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001B0144&lt;br /&gt;
| [[AM:ExportDSiWare|ExportDSiWare]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001C0084&lt;br /&gt;
| [[AM:ImportDSiWare|ImportDSiWare]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001D0000&lt;br /&gt;
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x00510000.&lt;br /&gt;
|-&lt;br /&gt;
| 0x001E....&lt;br /&gt;
| DSiWare related.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00230080&lt;br /&gt;
| [[AMNet:TitleIDListGetTotal2|TitleIDListGetTotal2]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002400C2&lt;br /&gt;
| [[AMNet:GetTitleIDList2|GetTitleIDList2]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The above commands are for am:sys, am:u, and am:net.&lt;br /&gt;
&lt;br /&gt;
== Application Manager services &amp;quot;am:u&amp;quot; and &amp;quot;am:net&amp;quot; ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x04010080&lt;br /&gt;
| [[AM:InstallFIRM|InstallFIRM]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04020040&lt;br /&gt;
| [[AM:StartInstallCIADB0|StartInstallCIADB0]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04030000&lt;br /&gt;
| [[AM:StartInstallCIADB1|StartInstallCIADB1]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04040002&lt;br /&gt;
| [[AM:AbortCIAInstall|AbortCIAInstall]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04050002&lt;br /&gt;
| [[AM:CloseCIAFinalizeInstall|CloseCIAFinalizeInstall]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04060002&lt;br /&gt;
| [[AM:CloseCIA|CloseCIA]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040700C2&lt;br /&gt;
| [[AM:FinalizeTitlesInstall|FinalizeTitlesInstall]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04080042&lt;br /&gt;
| This returns a [[AMNet:ListTitles|titlelist]] entry for a [[CIA]], using the specified file-handle. AM module reads data from the specified CIA file-handle for this. (entryptr*, [[CIA]] filehandle, mediatype)&lt;br /&gt;
|-&lt;br /&gt;
| 0x040B0002&lt;br /&gt;
| For this command, AM module reads an u64 from the [[CIA]] using the specified file-handle? (u64* out, [[CIA]] filehandle)&lt;br /&gt;
|-&lt;br /&gt;
| 0x040E00C2&lt;br /&gt;
| [[AM:InstallTitlesFinish|InstallTitlesFinish]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040F0000&lt;br /&gt;
| [[AM:InstallNATIVEFIRM|InstallNATIVEFIRM]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x041000C0&lt;br /&gt;
| [[AM:DeleteTitle|DeleteTitle]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04120000&lt;br /&gt;
| [[AM:Initialize|Initialize]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Application Manager service &amp;quot;am:app&amp;quot; =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x100100C0&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10030142&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10050084&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10070102&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Application Manager service &amp;quot;am:sys&amp;quot; =&lt;br /&gt;
&lt;br /&gt;
= Application Manager service &amp;quot;am:u&amp;quot; =&lt;br /&gt;
&lt;br /&gt;
= Application Manager service &amp;quot;am:pipe&amp;quot; =&lt;br /&gt;
&lt;br /&gt;
= Application Manager network service &amp;quot;am:net&amp;quot; =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x08010000&lt;br /&gt;
| [[AMNet:OpenTicket|OpenTicket]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08020002&lt;br /&gt;
| [[AMNet:TicketAbortInstall|TicketAbortInstall]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08030002&lt;br /&gt;
| [[AMNet:TicketFinalizeInstall|TicketFinalizeInstall]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08040100&lt;br /&gt;
| [[AMNet:InstallTitleBegin|InstallTitleBegin]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08050000&lt;br /&gt;
| [[AMNet:InstallTitleAbort|InstallTitleAbort]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x080600C0&lt;br /&gt;
| [[AMNet:InstallTitleResume|InstallTitleResume]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08070000&lt;br /&gt;
| [[AMNet:InstallTitleAbortTMD|InstallTitleAbortTMD]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08080000&lt;br /&gt;
| [[AMNet:InstallTitleFinish|InstallTitleFinish]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x080A0000&lt;br /&gt;
| [[AMNet:OpenTMD|OpenTMD]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x080B0002&lt;br /&gt;
| [[AMNet:TMDAbortInstall|TMDAbortInstall]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x080C0042&lt;br /&gt;
| [[AMNet:TMDFinalizeInstall|TMDFinalizeInstall]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x080E0040&lt;br /&gt;
| [[AMNet:OpenContentEncrypted|OpenContentCreate]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x080F0002&lt;br /&gt;
| [[AMNet:ContentAbortInstall|ContentAbortInstall]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08100040&lt;br /&gt;
| [[AMNet:OpenContentDisc|OpenContentResume]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08120002&lt;br /&gt;
| [[AMNet:ContentFinalizeInstall|ContentFinalizeInstall]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08130000&lt;br /&gt;
| [[AMNet:GetTotalContents|GetTotalContents]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08140042&lt;br /&gt;
| [[AMNet:GetContentIndexes|GetContentIndexes]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08150044&lt;br /&gt;
| [[AMNet:GetContentsInfo|GetContentsInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08190108&lt;br /&gt;
| Used for installing .ctx?(Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x003D0108)&lt;br /&gt;
|-&lt;br /&gt;
| 0x081B00C2&lt;br /&gt;
| [[AMNet:InstallTitlesFinish|InstallTitlesFinish]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= File service =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| 0x080200C2&lt;br /&gt;
| [[AMFile:Read|Read]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08030102&lt;br /&gt;
| [[AMFile:Write|Write]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08040000&lt;br /&gt;
| [[AMFile:GetSize|GetSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08050080&lt;br /&gt;
| [[AMFile:SetSize|SetSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08080000&lt;br /&gt;
| [[AMFile:Close|Close]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These are identical to [[Filesystem_services#File_service|FSFile]].&lt;br /&gt;
&lt;br /&gt;
=Errors=&lt;br /&gt;
See [[Application_Manager_Services_PXI|this]].&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Application_Manager_Services&amp;diff=11682</id>
		<title>Application Manager Services</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Application_Manager_Services&amp;diff=11682"/>
		<updated>2015-02-15T04:54:38Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Services]]&lt;br /&gt;
&lt;br /&gt;
= Application Manager services =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010040&lt;br /&gt;
| [[AMNet:TitleIDListGetTotal|TitleIDListGetTotal]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020082&lt;br /&gt;
| [[AMNet:GetTitleIDList|GetTitleIDList]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00030084&lt;br /&gt;
| [[AMNet:ListTitles|ListTitles]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000400C0&lt;br /&gt;
| [[AM:DeleteApplicationTitle|DeleteApplicationTitle]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000500C0&lt;br /&gt;
| [[AM:GetTitleProductCode|GetTitleProductCode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080000&lt;br /&gt;
| [[AMNet:TitleIDListGetTotal3|TitleIDListGetTotal3]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090082&lt;br /&gt;
| [[AMNet:GetTitleIDList3|GetTitleIDList3]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A0000&lt;br /&gt;
| [[AMNet:GetDeviceID|GetDeviceID]] (Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x003C0000)&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D0084&lt;br /&gt;
| [[AMNet:ListTitles2|ListTitles2]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00140040&lt;br /&gt;
| [[AMNet:FinishInstallToMedia|FinishInstallToMedia]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00180080&lt;br /&gt;
| This is a wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x00470080. (unknown_u8, unknown_u8)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00190040&lt;br /&gt;
| [[AM:ReloadDBS|ReloadDBS]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001A00C0&lt;br /&gt;
| [[AM:GetDSiWareExportSize|GetDSiWareExportSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001B0144&lt;br /&gt;
| [[AM:ExportDSiWare|ExportDSiWare]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001C0084&lt;br /&gt;
| [[AM:ImportDSiWare|ImportDSiWare]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001D0000&lt;br /&gt;
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x00510000.&lt;br /&gt;
|-&lt;br /&gt;
| 0x001E....&lt;br /&gt;
| DSiWare related.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00230080&lt;br /&gt;
| [[AMNet:TitleIDListGetTotal2|TitleIDListGetTotal2]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002400C2&lt;br /&gt;
| [[AMNet:GetTitleIDList2|GetTitleIDList2]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The above commands are for am:sys, am:u, and am:net.&lt;br /&gt;
&lt;br /&gt;
== Application Manager services &amp;quot;am:u&amp;quot; and &amp;quot;am:net&amp;quot; ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x04010080&lt;br /&gt;
| [[AM:InstallFIRM|InstallFIRM]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04020040&lt;br /&gt;
| [[AM:StartInstallCIADB0|StartInstallCIADB0]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04030000&lt;br /&gt;
| [[AM:StartInstallCIADB1|StartInstallCIADB1]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04040002&lt;br /&gt;
| [[AM:AbortCIAInstall|AbortCIAInstall]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04050002&lt;br /&gt;
| [[AM:CloseCIAFinalizeInstall|CloseCIAFinalizeInstall]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04060002&lt;br /&gt;
| [[AM:CloseCIA|CloseCIA]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040700C2&lt;br /&gt;
| [[AM:FinalizeTitlesInstall|FinalizeTitlesInstall]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04080042&lt;br /&gt;
| This returns a [[AMNet:ListTitles|titlelist]] entry for a [[CIA]], using the specified file-handle. AM module reads data from the specified CIA file-handle for this. (entryptr*, [[CIA]] filehandle, mediatype)&lt;br /&gt;
|-&lt;br /&gt;
| 0x040B0002&lt;br /&gt;
| For this command, AM module reads an u64 from the [[CIA]] using the specified file-handle? (u64* out, [[CIA]] filehandle)&lt;br /&gt;
|-&lt;br /&gt;
| 0x040E00C2&lt;br /&gt;
| [[AM:InstallTitlesFinish|InstallTitlesFinish]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040F0000&lt;br /&gt;
| [[AM:InstallNATIVEFIRM|InstallNATIVEFIRM]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x041000C0&lt;br /&gt;
| [[AM:DeleteTitle|DeleteTitle]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04120000&lt;br /&gt;
| [[AM:Initialize|Initialize]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Application Manager service &amp;quot;am:app&amp;quot; =&lt;br /&gt;
&lt;br /&gt;
= Application Manager service &amp;quot;am:sys&amp;quot; =&lt;br /&gt;
&lt;br /&gt;
= Application Manager service &amp;quot;am:u&amp;quot; =&lt;br /&gt;
&lt;br /&gt;
= Application Manager service &amp;quot;am:pipe&amp;quot; =&lt;br /&gt;
&lt;br /&gt;
= Application Manager network service &amp;quot;am:net&amp;quot; =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x08010000&lt;br /&gt;
| [[AMNet:OpenTicket|OpenTicket]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08020002&lt;br /&gt;
| [[AMNet:TicketAbortInstall|TicketAbortInstall]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08030002&lt;br /&gt;
| [[AMNet:TicketFinalizeInstall|TicketFinalizeInstall]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08040100&lt;br /&gt;
| [[AMNet:InstallTitleBegin|InstallTitleBegin]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08050000&lt;br /&gt;
| [[AMNet:InstallTitleAbort|InstallTitleAbort]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x080600C0&lt;br /&gt;
| [[AMNet:InstallTitleResume|InstallTitleResume]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08070000&lt;br /&gt;
| [[AMNet:InstallTitleAbortTMD|InstallTitleAbortTMD]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08080000&lt;br /&gt;
| [[AMNet:InstallTitleFinish|InstallTitleFinish]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x080A0000&lt;br /&gt;
| [[AMNet:OpenTMD|OpenTMD]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x080B0002&lt;br /&gt;
| [[AMNet:TMDAbortInstall|TMDAbortInstall]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x080C0042&lt;br /&gt;
| [[AMNet:TMDFinalizeInstall|TMDFinalizeInstall]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x080E0040&lt;br /&gt;
| [[AMNet:OpenContentEncrypted|OpenContentCreate]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x080F0002&lt;br /&gt;
| [[AMNet:ContentAbortInstall|ContentAbortInstall]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08100040&lt;br /&gt;
| [[AMNet:OpenContentDisc|OpenContentResume]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08120002&lt;br /&gt;
| [[AMNet:ContentFinalizeInstall|ContentFinalizeInstall]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08130000&lt;br /&gt;
| [[AMNet:GetTotalContents|GetTotalContents]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08140042&lt;br /&gt;
| [[AMNet:GetContentIndexes|GetContentIndexes]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08150044&lt;br /&gt;
| [[AMNet:GetContentsInfo|GetContentsInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08190108&lt;br /&gt;
| Used for installing .ctx?(Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x003D0108)&lt;br /&gt;
|-&lt;br /&gt;
| 0x081B00C2&lt;br /&gt;
| [[AMNet:InstallTitlesFinish|InstallTitlesFinish]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= File service =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| 0x080200C2&lt;br /&gt;
| [[AMFile:Read|Read]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08030102&lt;br /&gt;
| [[AMFile:Write|Write]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08040000&lt;br /&gt;
| [[AMFile:GetSize|GetSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08050080&lt;br /&gt;
| [[AMFile:SetSize|SetSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x08080000&lt;br /&gt;
| [[AMFile:Close|Close]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These are identical to [[Filesystem_services#File_service|FSFile]].&lt;br /&gt;
&lt;br /&gt;
=Errors=&lt;br /&gt;
See [[Application_Manager_Services_PXI|this]].&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Services_API&amp;diff=11681</id>
		<title>Services API</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Services_API&amp;diff=11681"/>
		<updated>2015-02-15T04:51:30Z</updated>

		<summary type="html">&lt;p&gt;Purpasmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Nintendo provides application developers with an API, which communicate with certain services. Services, in this sense, are system processes running in the background which wait for incoming requests. When a process wants to communicate with a service, it first needs to get a handle to the named service, and then it can communicate with the service via interprocess communication. Each service has a name up to 8 characters, for example &amp;quot;nim:u&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Handles for services are retrieved from the service manager port, &amp;quot;srv:&amp;quot;. Services are an abstraction of ports, they operate the same way except regular ports can have their handles retrieved directly from a SVC.&lt;br /&gt;
&lt;br /&gt;
For a description of how commands and arguments are passed to services, see [[IPC Command Structure]].&lt;br /&gt;
&lt;br /&gt;
List of services:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Old3ds&lt;br /&gt;
!  Services&lt;br /&gt;
!  Service names&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;200&amp;quot; |  Notes&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Filesystem services‎]]&lt;br /&gt;
| fs:USER, fs:LDR, fs:REG&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Process Services‎]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[PXI Services‎]]&lt;br /&gt;
| PxiFS0, PxiFS1, PxiFSB, PxiFSR, PxiPM, pxi:am9, pxi:dev, pxi:mc, pxi:ps9&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Application Manager Services]]&lt;br /&gt;
| am:app, am:net, am:u, am:sys, am:pipe&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Process Manager Services]]&lt;br /&gt;
| pm:app, pm:dbg&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[NIM Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Config Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[NS|NS and APT Services]]&lt;br /&gt;
| ns:s, ns:p, ns:c, APT:A, APT:S, APT:U&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[RO Services]]&lt;br /&gt;
| ldr:ro&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[NDM Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[CSND Services]]&lt;br /&gt;
| csnd:SND&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Camera Services]]&lt;br /&gt;
| cam:u, y2r:u, cam:s, cam:c, cam:q (New3DS only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Codec Services]]&lt;br /&gt;
| cdc:HID, cdc:MIC, cdc:CSN, cdc:DSP, cdc:LGY, cdc:CHK&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[DSP Services]]&lt;br /&gt;
| dsp:DSP&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[GSP Services]]&lt;br /&gt;
| gsp::Lcd, gsp::Gpu&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[IR Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[I2C Services]]&lt;br /&gt;
| i2c::MCU, i2c::CAM, i2c::LCD, i2c::DEB, i2c::HID, i2c::IR, i2c::EEP&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[GPIO Services]]&lt;br /&gt;
| gpio:CDC, gpio:MCU, gpio:HID, gpio:NWM, gpio:IR&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[HID Services]]&lt;br /&gt;
| hid:USER, hid:SPVR&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[PTM Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[NWM Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[HTTP Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[SSL Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Socket Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[AC Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Friend Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[News Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[PDN Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[SPI Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[Loader Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[MCU Services]]&lt;br /&gt;
| mcu::CAM, mcu::GPU, mcu::HID, mcu::RTC, mcu::SND, mcu::NWM, mcu::HWC, mcu::PLS, mcu::CDC&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: green&amp;quot; | Yes&lt;br /&gt;
| [[MIC Services]]&lt;br /&gt;
| mic:u&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: red&amp;quot; | No&lt;br /&gt;
| [[NFC Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: red&amp;quot; | No&lt;br /&gt;
| [[MVD Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: red&amp;quot; | No&lt;br /&gt;
| [[QTM Services]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
List of PXI services:&lt;br /&gt;
* [[Filesystem services PXI]]&lt;br /&gt;
* [[Process Services PXI]]&lt;br /&gt;
* [[Application Manager Services PXI]]&lt;br /&gt;
* [[Process Manager Services PXI]]&lt;br /&gt;
* [[Development Services PXI]]&lt;br /&gt;
* [[Gamecard Services PXI]]&lt;br /&gt;
* [[Legacy FIRM PXI]] (TWL_FIRM/AGB_FIRM)&lt;br /&gt;
&lt;br /&gt;
List of ports:&lt;br /&gt;
* [[ErrDisp]]&lt;br /&gt;
* [[Services]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See [[Error codes]].&lt;/div&gt;</summary>
		<author><name>Purpasmart</name></author>
	</entry>
</feed>