<?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=Bob</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=Bob"/>
	<link rel="alternate" type="text/html" href="https://www.3dbrew.org/wiki/Special:Contributions/Bob"/>
	<updated>2026-04-03T21:26:02Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=GPU/External_Registers&amp;diff=4556</id>
		<title>GPU/External Registers</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=GPU/External_Registers&amp;diff=4556"/>
		<updated>2012-12-24T17:23:35Z</updated>

		<summary type="html">&lt;p&gt;Bob: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Map ==&lt;br /&gt;
* 0x1EF00400 is the top screen&lt;br /&gt;
* 0x1EF00500 is the bottom screen&lt;br /&gt;
&lt;br /&gt;
== Init Values from nngxInitialize for Top Screen ==&lt;br /&gt;
* 0x1EF00400 = 0x1C2&lt;br /&gt;
* 0x1EF00404 = 0xD1&lt;br /&gt;
* 0x1EF00408 = 0x1C1&lt;br /&gt;
* 0x1EF0040C = 0x1C1&lt;br /&gt;
* 0x1EF00410 = 0&lt;br /&gt;
* 0x1EF00414 = 0xCF&lt;br /&gt;
* 0x1EF00418 = 0xD1&lt;br /&gt;
* 0x1EF0041C = 0x1C501C1&lt;br /&gt;
* 0x1EF00420 = 0x10000&lt;br /&gt;
* 0x1EF00424 = 0x19D&lt;br /&gt;
* 0x1EF00428 = 2&lt;br /&gt;
* 0x1EF0042C = 0x1C2&lt;br /&gt;
* 0x1EF00430 = 0x1C2&lt;br /&gt;
* 0x1EF00434 = 0x1C2&lt;br /&gt;
* 0x1EF00438 = 1&lt;br /&gt;
* 0x1EF0043C = 2&lt;br /&gt;
* 0x1EF00440 = 0x1960192&lt;br /&gt;
* 0x1EF00444 = 0&lt;br /&gt;
* 0x1EF00448 = 0&lt;br /&gt;
* 0x1EF0045C = 0x19000F0&lt;br /&gt;
* 0x1EF00460 = 0x1c100d1&lt;br /&gt;
* 0x1EF00464 = 0x1920002&lt;br /&gt;
* 0x1EF00470 = 0x80340&lt;br /&gt;
* 0x1EF0049C = 0&lt;br /&gt;
&lt;br /&gt;
== More Init Values from nngxInitialize for Top Screen ==&lt;br /&gt;
* 0x1EF00468 = 0x18300000, later changes to 0x181e6000, framebuffer&lt;br /&gt;
* 0x1EF0046C = 0x18300000, later changes to 0x18273000, framebuffer&lt;br /&gt;
* 0x1EF00494 = 0x18300000&lt;br /&gt;
* 0x1EF00498 = 0x18300000&lt;br /&gt;
* 0x1EF00478 = 1, doesn&#039;t stay 1, read as 0&lt;br /&gt;
* 0x1EF00474 = 0x10501&lt;/div&gt;</summary>
		<author><name>Bob</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=GPU/External_Registers&amp;diff=4555</id>
		<title>GPU/External Registers</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=GPU/External_Registers&amp;diff=4555"/>
		<updated>2012-12-24T17:19:00Z</updated>

		<summary type="html">&lt;p&gt;Bob: Created page with &amp;quot;== Map == * 0x1EF00400 is the top screen * 0x1EF00500 is the bottom screen  == Init Values from nngxInitialize == * 0x1EF00400 = 0x1C2 * 0x1EF00404 = 0xD1 * 0x1EF00408 = 0x1C1 * ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Map ==&lt;br /&gt;
* 0x1EF00400 is the top screen&lt;br /&gt;
* 0x1EF00500 is the bottom screen&lt;br /&gt;
&lt;br /&gt;
== Init Values from nngxInitialize ==&lt;br /&gt;
* 0x1EF00400 = 0x1C2&lt;br /&gt;
* 0x1EF00404 = 0xD1&lt;br /&gt;
* 0x1EF00408 = 0x1C1&lt;br /&gt;
* 0x1EF0040C = 0x1C1&lt;br /&gt;
* 0x1EF00410 = 0&lt;br /&gt;
* 0x1EF00414 = 0xCF&lt;br /&gt;
* 0x1EF00418 = 0xD1&lt;br /&gt;
* 0x1EF0041C = 0x1C501C1&lt;br /&gt;
* 0x1EF00420 = 0x10000&lt;br /&gt;
* 0x1EF00424 = 0x19D&lt;br /&gt;
* 0x1EF00428 = 2&lt;br /&gt;
* 0x1EF0042C = 0x1C2&lt;br /&gt;
* 0x1EF00430 = 0x1C2&lt;br /&gt;
* 0x1EF00434 = 0x1C2&lt;br /&gt;
* 0x1EF00438 = 1&lt;br /&gt;
* 0x1EF0043C = 2&lt;br /&gt;
* 0x1EF00440 = 0x1960192&lt;br /&gt;
* 0x1EF00444 = 0&lt;br /&gt;
* 0x1EF00448 = 0&lt;br /&gt;
&lt;br /&gt;
* 0x1EF0045C = 0x19000F0&lt;br /&gt;
* 0x1EF00460 = 0x1c100d1&lt;br /&gt;
* 0x1EF00464 = 0x1920002&lt;br /&gt;
* 0x1EF00470 = 0x80340&lt;br /&gt;
* 0x1EF0049C = 0&lt;/div&gt;</summary>
		<author><name>Bob</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=IO_Registers&amp;diff=4554</id>
		<title>IO Registers</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=IO_Registers&amp;diff=4554"/>
		<updated>2012-12-24T17:09:25Z</updated>

		<summary type="html">&lt;p&gt;Bob: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
!  Category&lt;br /&gt;
!  Address start&lt;br /&gt;
|-&lt;br /&gt;
| [[IRQ]]&lt;br /&gt;
| 0x10001000&lt;br /&gt;
|-&lt;br /&gt;
| [[NDMA]]&lt;br /&gt;
| 0x10002000&lt;br /&gt;
|-&lt;br /&gt;
| [[TIMER]]&lt;br /&gt;
| 0x10003000&lt;br /&gt;
|-&lt;br /&gt;
| [[CTRCARD]]&lt;br /&gt;
| 0x10004000 / 0x10005000&lt;br /&gt;
|-&lt;br /&gt;
| [[SDMC]] / [[NAND]]&lt;br /&gt;
| 0x10006000 / 0x10007000&lt;br /&gt;
|-&lt;br /&gt;
| [[PXI]]&lt;br /&gt;
| 0x10008000&lt;br /&gt;
|-&lt;br /&gt;
| [[AES]]&lt;br /&gt;
| 0x10009000&lt;br /&gt;
|-&lt;br /&gt;
| [[SHA]]&lt;br /&gt;
| 0x1000A000&lt;br /&gt;
|-&lt;br /&gt;
| [[RSA]]&lt;br /&gt;
| 0x1000B000&lt;br /&gt;
|-&lt;br /&gt;
| [[XDMA]]&lt;br /&gt;
| 0x1000C000&lt;br /&gt;
|-&lt;br /&gt;
| [[SPICARD]]&lt;br /&gt;
| 0x1000D800&lt;br /&gt;
|-&lt;br /&gt;
| [[PAD]]&lt;br /&gt;
| 0x10146000&lt;br /&gt;
|-&lt;br /&gt;
| [[NTRCARD]]&lt;br /&gt;
| 0x10164000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Summary=&lt;br /&gt;
&lt;br /&gt;
* [[PXI]]&lt;br /&gt;
* [[I2C]]&lt;br /&gt;
* [[LCD]]&lt;br /&gt;
* [[GPU]]&lt;/div&gt;</summary>
		<author><name>Bob</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Memory_layout&amp;diff=4553</id>
		<title>Memory layout</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Memory_layout&amp;diff=4553"/>
		<updated>2012-12-23T20:38:00Z</updated>

		<summary type="html">&lt;p&gt;Bob: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=ARM11 Physical memory regions =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Address&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x10000&lt;br /&gt;
| Bootrom (super secret code/data @ 0x8000)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10000&lt;br /&gt;
| 0x10000&lt;br /&gt;
| Bootrom mirror&lt;br /&gt;
|-&lt;br /&gt;
| 0x10000000&lt;br /&gt;
| ?&lt;br /&gt;
| [[IO]] memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x18000000&lt;br /&gt;
| 0x600000&lt;br /&gt;
| VRAM&lt;br /&gt;
|-&lt;br /&gt;
| 0x1FF00000&lt;br /&gt;
| 0x80000&lt;br /&gt;
| DSP memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1FF80000&lt;br /&gt;
| 0x80000&lt;br /&gt;
| AXI WRAM&lt;br /&gt;
|-&lt;br /&gt;
| 0x20000000&lt;br /&gt;
| 0x8000000&lt;br /&gt;
| FCRAM&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=ARM11 Detailed physical memory map=&lt;br /&gt;
 18000000 - 18600000: VRAM&lt;br /&gt;
 &lt;br /&gt;
 1FFF0000 - 1FFF1000: ?&lt;br /&gt;
 1FFF1000 - 1FFF2000: ?&lt;br /&gt;
 1FFF2000 - 1FFF3000: ?&lt;br /&gt;
 1FFF3000 - 1FFF4000: ?&lt;br /&gt;
 1FFF4000 - 1FFF5000: Exception vectors&lt;br /&gt;
 1FFF5000 - 1FFF5800: Unused?&lt;br /&gt;
 1FFF5800 - 1FFF5C00: 256-entry L2 MMU table for VA FF4xx000&lt;br /&gt;
 1FFF5C00 - 1FFF6000: 256-entry L2 MMU table for VA FF5xx000&lt;br /&gt;
 1FFF6000 - 1FFF6400: 256-entry L2 MMU table for VA FF6xx000&lt;br /&gt;
 1FFF6400 - 1FFF6800: 256-entry L2 MMU table for VA FF7xx000&lt;br /&gt;
 1FFF6800 - 1FFF6C00: 256-entry L2 MMU table for VA FF8xx000&lt;br /&gt;
 1FFF6C00 - 1FFF7000: 256-entry L2 MMU table for VA FF9xx000&lt;br /&gt;
 1FFF7000 - 1FFF7400: 256-entry L2 MMU table for VA FFAxx000&lt;br /&gt;
 1FFF7400 - 1FFF7800: 256-entry L2 MMU table for VA FFBxx000&lt;br /&gt;
 1FFF7800 - 1FFF7C00: MMU table but unused?&lt;br /&gt;
 1FFF7C00 - 1FFF8000: 256-entry L2 MMU table for VA FFFxx000&lt;br /&gt;
 1FF80000 - 1FFAB000: Kernel code&lt;br /&gt;
 1FFAB000 - 1FFF0000: SlabHeap [temporarily contains boot processes]&lt;br /&gt;
 &lt;br /&gt;
 1FFF8000 - 1FFFC000: ?&lt;br /&gt;
 1FFFC000 - 20000000: 4096-entry L1 MMU table for VA xxx00000&lt;br /&gt;
 20000000 - 28000000: Main memory&lt;br /&gt;
&lt;br /&gt;
=ARM11 Detailed virtual memory map=&lt;br /&gt;
 E8000000 - E8600000: mapped VRAM (18000000 - 18600000)&lt;br /&gt;
 &lt;br /&gt;
 EFF00000 - F0000000: mapped Internal memory (1FF00000 - 20000000)&lt;br /&gt;
 F0000000 - F8000000: mapped Main memory&lt;br /&gt;
 &lt;br /&gt;
 FF401000 - FF402000: mapped ? (27FC7000 - 27FC8000)&lt;br /&gt;
 &lt;br /&gt;
 FF403000 - FF404000: mapped ? (27FC2000 - 27FC3000)&lt;br /&gt;
 &lt;br /&gt;
 FF405000 - FF406000: mapped ? (27FBB000 - 27FBC000)&lt;br /&gt;
 &lt;br /&gt;
 FF407000 - FF408000: mapped ? (27FB3000 - 27FB4000)&lt;br /&gt;
 &lt;br /&gt;
 FF409000 - FF40A000: mapped ? (27F8E000 - 27F8F000)&lt;br /&gt;
 &lt;br /&gt;
 FFF00000 - FFF45000: mapped SlabHeap &lt;br /&gt;
 &lt;br /&gt;
 FFF60000 - FFF8B000: mapped Kernel code&lt;br /&gt;
 &lt;br /&gt;
 FFFCC000 - FFFCD000: mapped IO ? (10144000 - 10145000)&lt;br /&gt;
 &lt;br /&gt;
 FFFCE000 - FFFCF000: mapped IO PDC (10400000 - 10401000)&lt;br /&gt;
 &lt;br /&gt;
 FFFD0000 - FFFD1000: mapped IO PDN (10141000 - 10142000)&lt;br /&gt;
 &lt;br /&gt;
 FFFD2000 - FFFD3000: mapped IO PXI (10163000 - 10164000)&lt;br /&gt;
 &lt;br /&gt;
 FFFD4000 - FFFD5000: mapped IO PAD (10146000 - 10147000)&lt;br /&gt;
 &lt;br /&gt;
 FFFD6000 - FFFD7000: mapped IO LCD (10202000 - 10203000)&lt;br /&gt;
 &lt;br /&gt;
 FFFD8000 - FFFD9000: mapped IO ? (10140000 - 10141000)&lt;br /&gt;
 &lt;br /&gt;
 FFFDA000 - FFFDB000: mapped IO XDMA (10200000 - 10201000)&lt;br /&gt;
 &lt;br /&gt;
 FFFDC000 - FFFE0000: mapped ? (1FFF8000 - 1FFFC000)&lt;br /&gt;
 &lt;br /&gt;
 FFFE1000 - FFFE2000: mapped ? (1FFF0000 - 1FFF1000)&lt;br /&gt;
 &lt;br /&gt;
 FFFE3000 - FFFE4000: mapped ? (1FFF2000 - 1FFF3000)&lt;br /&gt;
 &lt;br /&gt;
 FFFE5000 - FFFE9000: mapped L1 MMU table for VA xxx00000&lt;br /&gt;
 &lt;br /&gt;
 FFFEA000 - FFFEB000: mapped ? (1FFF1000 - 1FFF2000)&lt;br /&gt;
 &lt;br /&gt;
 FFFEC000 - FFFED000: mapped ? (1FFF3000 - 1FFF4000)&lt;br /&gt;
 &lt;br /&gt;
 FFFEE000 - FFFF0000: mapped IO IRQ (17E00000 - 17E02000)&lt;br /&gt;
 &lt;br /&gt;
 FFFF0000 - FFFF1000: mapped Exception vectors&lt;br /&gt;
 &lt;br /&gt;
 FFFF2000 - FFFF6000: mapped L1 MMU table for VA xxx00000&lt;br /&gt;
 &lt;br /&gt;
 FFFF7000 - FFFF8000: mapped ? (1FFF1000 - 1FFF2000)&lt;br /&gt;
 &lt;br /&gt;
 FFFF9000 - FFFFA000: mapped ? (1FFF3000 - 1FFF4000)&lt;br /&gt;
 &lt;br /&gt;
 FFFFB000 - FFFFE000: mapped L2 MMU tables (1FFF5000 - 1FFF8000)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=ARM11 User-land memory regions=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Virtual Address Base&lt;br /&gt;
!  Physical Address Base&lt;br /&gt;
!  Region Max Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00100000 / 0x14000000&lt;br /&gt;
| &lt;br /&gt;
| 0x03F00000&lt;br /&gt;
| The [[ExeFS]]:/.code is loaded here, executables must be loaded to the 0x00100000 region when the exheader &amp;quot;special memory&amp;quot; flag is clear. The 0x03F00000-byte size restriction only applies when this flag is clear. Executables are usually loaded to 0x14000000 when the exheader &amp;quot;special memory&amp;quot; flag is set, however this address can be arbitrary.&lt;br /&gt;
|-&lt;br /&gt;
| 0x08000000&lt;br /&gt;
| &lt;br /&gt;
| 0x08000000&lt;br /&gt;
| Heap mapped by [[SVC|ControlMemory]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x10000000-StackSize&lt;br /&gt;
| &lt;br /&gt;
| StackSize from process exheader&lt;br /&gt;
| Stack for the main-thread, initialized by the ARM11 kernel. The StackSize from the exheader is usually 0x4000, therefore the stack-bottom is usually 0x0FFFC000. The stack for the other threads is normally located in the process .data section however this can be arbitrary.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10000000&lt;br /&gt;
| &lt;br /&gt;
| 0x04000000&lt;br /&gt;
| Applications usually map this region for HID&lt;br /&gt;
|-&lt;br /&gt;
| 0x14000000&lt;br /&gt;
| &lt;br /&gt;
| 0x08000000&lt;br /&gt;
| Can be mapped by [[SVC|ControlMemory]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1EC00000&lt;br /&gt;
| 0x10100000&lt;br /&gt;
| 0x01000000&lt;br /&gt;
| [[IO]] registers, the mapped IO pages which each process can access is specified in the [[NCCH#CXI|CXI]] exheader.(Applications normally don&#039;t have access to registers in this range)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F000000&lt;br /&gt;
| 0x18000000&lt;br /&gt;
| 0x00600000&lt;br /&gt;
| VRAM, access to this is specified by the exheader.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1FF00000&lt;br /&gt;
| 0x1FF00000&lt;br /&gt;
| 0x00080000&lt;br /&gt;
| DSP memory, access to this is specified by the exheader.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1FF80000&lt;br /&gt;
| &lt;br /&gt;
| 0x1000&lt;br /&gt;
| [[Configuration Memory]], all processes have access to this however write-permission to this page is specified by the exheader &amp;quot;Shared page writing&amp;quot; kernel flag.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1FF81000&lt;br /&gt;
| &lt;br /&gt;
| 0x1000&lt;br /&gt;
| Shared page, access to this is the same as 0x1FF80000.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
All executable pages are read-only, and data pages have the execute-never permission set. Normally .text from the loaded ExeFS:/.code is the only mapped executable memory. Executable [[RO Services|CROs]] can be loaded into memory, once loaded the CRO .text section memory page permissions are changed via [[SVC|ControlProcessMemory]] from RW- to R-X. The address and size of each ExeFS:/.code section is stored in the exheader, the permissions for each section is: .text R-X, .rodata R--, .data RW-, and .bss RW-. The loaded .code is mapped to the addresses specified in the exheader by the ARM11 kernel. The stack permissions is initialized by the ARM11 kernel: RW-. The heap permissions is normally RW-.&lt;br /&gt;
&lt;br /&gt;
All userland memory is mapped with RW permissions for privileged-mode. However, normally the ARM11 kernel only uses userland read/write instructions(or checks that the memory can be written from userland first) for accessing memory specified by [[SVC|SVCs]].&lt;br /&gt;
&lt;br /&gt;
The virtual memory located below 0x20000000 is process-unique, processes can&#039;t directly access memory for other processes. The virtual memory starting at 0x20000000 is only accessible in privileged-mode. When service [[Services API|commands]] are used, the kernel maps memory in the destination process for input/output buffers, where the addresses in the command received by the process is replaced by this mapped memory. When this is an input buffer, the buffer data is copied to the mapped memory. When this is an output buffer, the data stored in the mapped memory is copied to the destination buffer specified in the command.&lt;br /&gt;
&lt;br /&gt;
== VRAM Map While Running Webbrowser ==&lt;br /&gt;
*0x1e6000-0x22C500 -- top screen framebuffer 0(240x400x3)&lt;br /&gt;
*0x22C800-0x272D00 -- top screen framebuffer 1(240x400x3)&lt;br /&gt;
*0x273000-0x2B9500 -- top screen framebuffer 2(240x400x3)&lt;br /&gt;
*0x2B9800-0x2FFD00 -- top screen framebuffer 3(240x400x3)&lt;br /&gt;
*0x48F000-0x4C7400 -- bottom screen framebuffer 0(240x320x3)&lt;br /&gt;
*0x4C7800-0x4FF800 -- bottom screen framebuffer 1(240x320x3)&lt;/div&gt;</summary>
		<author><name>Bob</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=GSP_Services&amp;diff=4430</id>
		<title>GSP Services</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=GSP_Services&amp;diff=4430"/>
		<updated>2012-12-10T06:57:52Z</updated>

		<summary type="html">&lt;p&gt;Bob: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= NDM service &amp;quot;gsp::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;
| 0x00010082&lt;br /&gt;
| CopyToGpuRam?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==CopyToGpuRam 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 [0x00010082]&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| GPU Address - 0x1EB00000&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Size&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| (Size&amp;lt;&amp;lt;14) | 2&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Data Pointer&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Bob</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Services_API&amp;diff=4429</id>
		<title>Services API</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Services_API&amp;diff=4429"/>
		<updated>2012-12-10T06:54:52Z</updated>

		<summary type="html">&lt;p&gt;Bob: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Nintendo provides application developers with an API, which behind the scenes 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;
List of services:&lt;br /&gt;
* [[Filesystem services‎]]&lt;br /&gt;
* [[Process Services‎]]&lt;br /&gt;
* [[Application Manager Services]]&lt;br /&gt;
* [[NIM Services]]&lt;br /&gt;
* [[Config Services]]&lt;br /&gt;
* [[NS|NS Services]]&lt;br /&gt;
* [[RO Services]]&lt;br /&gt;
* [[NDM Services]]&lt;br /&gt;
* [[GSP Services]]&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;
&lt;br /&gt;
List of ports:&lt;br /&gt;
* [[Process Manager Ports]]&lt;br /&gt;
* [[ErrDisp]]&lt;/div&gt;</summary>
		<author><name>Bob</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=GSP_Services&amp;diff=4428</id>
		<title>GSP Services</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=GSP_Services&amp;diff=4428"/>
		<updated>2012-12-10T06:54:18Z</updated>

		<summary type="html">&lt;p&gt;Bob: Created page with &amp;quot;= NDM service &amp;quot;gsp::Gpu&amp;quot; = {| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; |- !  Command Header !  Description |- | 0x00010082 | CopyToGpuRam? |}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= NDM service &amp;quot;gsp::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;
| 0x00010082&lt;br /&gt;
| CopyToGpuRam?&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Bob</name></author>
	</entry>
</feed>