<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://pandorawiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Notaz</id>
	<title>Pandora Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://pandorawiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Notaz"/>
	<link rel="alternate" type="text/html" href="https://pandorawiki.org/Special:Contributions/Notaz"/>
	<updated>2026-05-03T01:41:06Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.32.0-alpha</generator>
	<entry>
		<id>https://pandorawiki.org/index.php?title=SuperZaxxon_Knobs&amp;diff=30183</id>
		<title>SuperZaxxon Knobs</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=SuperZaxxon_Knobs&amp;diff=30183"/>
		<updated>2016-06-22T21:41:38Z</updated>

		<summary type="html">&lt;p&gt;Notaz: ducoment some config files and stuff&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists various configuration file tweaks that can be done on the default Pandora's OS. Some of these can be configured through the GUI, some can't.&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
* /etc/pandora/conf/cpu.conf - CPU overclocking configuration (minimum/maximum rate, etc, in MHz)&lt;br /&gt;
* /etc/pandora/conf/dsp.conf - DSP overclocking configuration&lt;br /&gt;
* /etc/pandora/conf/dss_fir/* - coefficient tables for the hardware scaler filter&lt;br /&gt;
* /etc/pandora/my_lid_is_broken - if this file exists, pressing any key will unblank pandora's screen (otherwise the screen won't unblank while the lid is closed)&lt;br /&gt;
&lt;br /&gt;
== WiFi ==&lt;br /&gt;
* /etc/pandora/conf/wl1251 - sourced by the wifi init script (if exists), may contain:&lt;br /&gt;
** ps_rate_threshold=&amp;lt;number&amp;gt; - while this rate is exceeded (bytes/s), power saving is disabled to improve performance (default 30000)&lt;br /&gt;
** use_fw_ps=&amp;lt;Y|N&amp;gt; - Y - power saving is only managed by wifi firmware, N - forcefully toggled by driver (default Y)&lt;br /&gt;
** long_doze_mode=&amp;lt;1|0&amp;gt; - if 1, additional wifi power saving is enabled (&amp;quot;long doze mode&amp;quot;) which saves ~30mW, but ping times are increased and some router compatibility is lost (default 0)&lt;br /&gt;
&lt;br /&gt;
== Battery charging ==&lt;br /&gt;
Some things can be configured in /etc/pandora/conf/eventmap&lt;br /&gt;
* start_capacity - start charging when capacity falls this low. Setting this to lower values may improve battery longevity&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Assembly_Code_Optimization&amp;diff=30178</id>
		<title>Assembly Code Optimization</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Assembly_Code_Optimization&amp;diff=30178"/>
		<updated>2016-04-30T17:41:51Z</updated>

		<summary type="html">&lt;p&gt;Notaz: /* NEON */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Assembly code optimization on the Cortex-A8 ==&lt;br /&gt;
This guide presents specific optimization techniques for the [[ARM]] Cortex-A8 processor and its dual-issue, in-order pipeline.&lt;br /&gt;
&lt;br /&gt;
== Use the ARMv7 movw/movt instructions ==&lt;br /&gt;
Newer ARM processors allow loading 32-bit values as two 16-bit immediates.  The movw instruction loads the lower 16 bits, and movt loads the upper 16 bits.  The movw instruction clears the upper 16 bits, so that 16-bit values can be loaded using a single instruction.  The movt instruction does not affect the lower bits.&lt;br /&gt;
&lt;br /&gt;
On older ARM processors, it was common to load 32-bit values with a PC-relative load.  This should be avoided because it may result in a cache miss.&lt;br /&gt;
&lt;br /&gt;
== Branch Prediction ==&lt;br /&gt;
There is a one-cycle stall in instruction fetch when a branch is predicted taken.  It is therefore preferable to structure code so that the most likely code path is the one where the branch is not taken.&lt;br /&gt;
&lt;br /&gt;
Unconditional branches may be mispredicted, and load instructions which follow branches may be decoded and cause cache accesses.  Avoid placing load instructions after branches unless you intend the CPU to prefetch the addresses they reference.&lt;br /&gt;
&lt;br /&gt;
The branch predictor has a call/return stack for jumps which reference r14 or stack operations using r13 which load the program counter.  For best performance, make sure any pop, mov pc,lr or bx lr jumps to the same location as was set by the matching bl instruction.  For non-return jumps, use a register other than r14.&lt;br /&gt;
&lt;br /&gt;
Although instructions are decoded in pairs, the branch predictor can only predict one branch target per cycle.  If you have a conditional branch which is immediately followed by another branch, and the first branch is likely to be taken, place a no-operation instruction between the branches to prevent decoding and prediction of the second branch.  Inserting NOPs is detrimental if the first branch is infrequently taken.&lt;br /&gt;
&lt;br /&gt;
== Dual-Issue Restrictions ==&lt;br /&gt;
Only one branch instruction can issue per cycle.  Only one load or store instruction can issue per cycle.  Instructions which write to the same register can not issue together.&lt;br /&gt;
&lt;br /&gt;
There is a one-cycle delay before any written register can be used as the address of a subsequent load or store instruction.  There is a one-cycle delay before any written register can be used by an instruction which performs a shift or rotation on that register.&lt;br /&gt;
&lt;br /&gt;
There is one cycle delay before the result of a load can be used.  In the aforementioned cases involving subsequent shift or rotate instructions, or the address of a load or store instruction, the total delay is two cycles.  &lt;br /&gt;
&lt;br /&gt;
Stores occur at the end of the pipeline and store instructions can issue in the same cycle as another instruction which writes the same register.  Similarly, conditional branches can issue in the same cycle as flag-setting instructions because the branch is not resolved until the following cycle.  In all other cases, instructions can not issue together if the second instruction depends on the results of the first.&lt;br /&gt;
&lt;br /&gt;
== Instruction pairing restrictions following a branch ==&lt;br /&gt;
The Cortex-A8 processor normally fetches two instructions per cycle and the branch predictor tests each against the global history buffer.  However, there is only one entry in the branch target buffer for each pair of instructions.  Therefore, branch instructions, and certain instructions which resemble branches, may adversely affect branch prediction when present in pairs.  To reduce the risk of branch misprediction, avoid pairing branch instructions with the following:&lt;br /&gt;
&lt;br /&gt;
* Branch instructions&lt;br /&gt;
* Load instructions, whether or not they write r15&lt;br /&gt;
* Arithmetic/logic instructions which do not set flags and do not have an immediate value, whether or not they write r15&lt;br /&gt;
&lt;br /&gt;
Flag-setting instructions can be used to avoid this restriction.  Additionally, MOV instructions that do not have immediate values can be replaced with ADD, SUB, ORR, or EOR instructions using zero as an immediate value.&lt;br /&gt;
&lt;br /&gt;
== Code alignment ==&lt;br /&gt;
Code alignment should be used with caution.  Alignment has the potential to increase performance, but may be detrimental in some circumstances.&lt;br /&gt;
&lt;br /&gt;
Because the instruction decoder always fetches 64-bit aligned words from the level-1 instruction cache, aligning code can improve instruction fetch and decode.  However, the global history buffer of the branch predictor is indexed by the low bits of the instruction address.  Excessive code alignment can result in a suboptimal distribution of entries in the branch history tables and increase branch misprediction.  Additionally, the speculative prefetch may retrieve and decode instructions used as padding, even if those instructions are never executed.  The types of instructions used as padding will affect the branch predictor as stated above, and this may affect the prefetch of code into the instruction cache.&lt;br /&gt;
&lt;br /&gt;
== NEON ==&lt;br /&gt;
As the manual states, passing data from NEON (and VFP) back to ARM takes at least 20 cycles, but there are some tricks that can be used. The vmov instruction itself that is passing the data will not cause any stalls (provided the needed NEON register is already available), the stall will actually happen on any ARM instruction that follows instead (including branches). This means that:&lt;br /&gt;
* Multiple &amp;quot;vmov.32 rX, dY[Z]&amp;quot; can be done back-to-back and only incur one stall after the whole sequence&lt;br /&gt;
* Additional NEON instructions can be issued after &amp;quot;vmov&amp;quot; without stalling (with enough instructions the stall can be completely avoided)&lt;br /&gt;
* Additional unrelated NEON instructions can be issued before &amp;quot;vmov&amp;quot; (to hide the latency of instruction that produces the source register data)&lt;br /&gt;
&lt;br /&gt;
Even though the VFP is not pipelined, the VFP vldr instructions are. &amp;quot;vldr s0, [r0]&amp;quot; will be faster than &amp;quot;vld1.32 {d0[0]}, [r0]&amp;quot; (2 vs 3 cycles, vldr also gives more flexible addressing mode). The same can't be said about &amp;quot;vmov sX, sY&amp;quot;, it waits for all previous instructions to complete before issuing.&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Optimization]]&lt;br /&gt;
[[Category:Chipset]]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Assembly_Code_Optimization&amp;diff=30177</id>
		<title>Assembly Code Optimization</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Assembly_Code_Optimization&amp;diff=30177"/>
		<updated>2016-04-30T17:39:12Z</updated>

		<summary type="html">&lt;p&gt;Notaz: /* NEON */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Assembly code optimization on the Cortex-A8 ==&lt;br /&gt;
This guide presents specific optimization techniques for the [[ARM]] Cortex-A8 processor and its dual-issue, in-order pipeline.&lt;br /&gt;
&lt;br /&gt;
== Use the ARMv7 movw/movt instructions ==&lt;br /&gt;
Newer ARM processors allow loading 32-bit values as two 16-bit immediates.  The movw instruction loads the lower 16 bits, and movt loads the upper 16 bits.  The movw instruction clears the upper 16 bits, so that 16-bit values can be loaded using a single instruction.  The movt instruction does not affect the lower bits.&lt;br /&gt;
&lt;br /&gt;
On older ARM processors, it was common to load 32-bit values with a PC-relative load.  This should be avoided because it may result in a cache miss.&lt;br /&gt;
&lt;br /&gt;
== Branch Prediction ==&lt;br /&gt;
There is a one-cycle stall in instruction fetch when a branch is predicted taken.  It is therefore preferable to structure code so that the most likely code path is the one where the branch is not taken.&lt;br /&gt;
&lt;br /&gt;
Unconditional branches may be mispredicted, and load instructions which follow branches may be decoded and cause cache accesses.  Avoid placing load instructions after branches unless you intend the CPU to prefetch the addresses they reference.&lt;br /&gt;
&lt;br /&gt;
The branch predictor has a call/return stack for jumps which reference r14 or stack operations using r13 which load the program counter.  For best performance, make sure any pop, mov pc,lr or bx lr jumps to the same location as was set by the matching bl instruction.  For non-return jumps, use a register other than r14.&lt;br /&gt;
&lt;br /&gt;
Although instructions are decoded in pairs, the branch predictor can only predict one branch target per cycle.  If you have a conditional branch which is immediately followed by another branch, and the first branch is likely to be taken, place a no-operation instruction between the branches to prevent decoding and prediction of the second branch.  Inserting NOPs is detrimental if the first branch is infrequently taken.&lt;br /&gt;
&lt;br /&gt;
== Dual-Issue Restrictions ==&lt;br /&gt;
Only one branch instruction can issue per cycle.  Only one load or store instruction can issue per cycle.  Instructions which write to the same register can not issue together.&lt;br /&gt;
&lt;br /&gt;
There is a one-cycle delay before any written register can be used as the address of a subsequent load or store instruction.  There is a one-cycle delay before any written register can be used by an instruction which performs a shift or rotation on that register.&lt;br /&gt;
&lt;br /&gt;
There is one cycle delay before the result of a load can be used.  In the aforementioned cases involving subsequent shift or rotate instructions, or the address of a load or store instruction, the total delay is two cycles.  &lt;br /&gt;
&lt;br /&gt;
Stores occur at the end of the pipeline and store instructions can issue in the same cycle as another instruction which writes the same register.  Similarly, conditional branches can issue in the same cycle as flag-setting instructions because the branch is not resolved until the following cycle.  In all other cases, instructions can not issue together if the second instruction depends on the results of the first.&lt;br /&gt;
&lt;br /&gt;
== Instruction pairing restrictions following a branch ==&lt;br /&gt;
The Cortex-A8 processor normally fetches two instructions per cycle and the branch predictor tests each against the global history buffer.  However, there is only one entry in the branch target buffer for each pair of instructions.  Therefore, branch instructions, and certain instructions which resemble branches, may adversely affect branch prediction when present in pairs.  To reduce the risk of branch misprediction, avoid pairing branch instructions with the following:&lt;br /&gt;
&lt;br /&gt;
* Branch instructions&lt;br /&gt;
* Load instructions, whether or not they write r15&lt;br /&gt;
* Arithmetic/logic instructions which do not set flags and do not have an immediate value, whether or not they write r15&lt;br /&gt;
&lt;br /&gt;
Flag-setting instructions can be used to avoid this restriction.  Additionally, MOV instructions that do not have immediate values can be replaced with ADD, SUB, ORR, or EOR instructions using zero as an immediate value.&lt;br /&gt;
&lt;br /&gt;
== Code alignment ==&lt;br /&gt;
Code alignment should be used with caution.  Alignment has the potential to increase performance, but may be detrimental in some circumstances.&lt;br /&gt;
&lt;br /&gt;
Because the instruction decoder always fetches 64-bit aligned words from the level-1 instruction cache, aligning code can improve instruction fetch and decode.  However, the global history buffer of the branch predictor is indexed by the low bits of the instruction address.  Excessive code alignment can result in a suboptimal distribution of entries in the branch history tables and increase branch misprediction.  Additionally, the speculative prefetch may retrieve and decode instructions used as padding, even if those instructions are never executed.  The types of instructions used as padding will affect the branch predictor as stated above, and this may affect the prefetch of code into the instruction cache.&lt;br /&gt;
&lt;br /&gt;
== NEON ==&lt;br /&gt;
As the manual states, passing data from NEON (and VFP) back to ARM takes at least 20 cycles, but there are some tricks that can be used. The vmov instruction itself that is passing the data will not cause any stalls (provided the needed NEON register is already available), the stall will actually happen on any ARM instruction that follows instead (including branches). This means that:&lt;br /&gt;
* Multiple &amp;quot;vmov.32 rX, dY[Z]&amp;quot; can be done back-to-back and only incur one stall after the whole sequence&lt;br /&gt;
* Additional NEON instructions can be issued after &amp;quot;vmov&amp;quot; without stalls (with enough instructions the stall can be completely avoided)&lt;br /&gt;
* Additional unrelated NEON instructions can be issued before &amp;quot;vmov&amp;quot; (to hide the latency of instruction that produces the source register data)&lt;br /&gt;
&lt;br /&gt;
Even though the VFP is not pipelined, the VFP vldr instructions are. &amp;quot;vldr s0, [r0]&amp;quot; will be faster than &amp;quot;vld1.32 {d0[0]}, [r0]&amp;quot; (2 vs 3 cycles, vldr also gives more flexible addressing mode). The same can't be said about &amp;quot;vmov sX, sY&amp;quot;, it waits for all previous instructions to complete before issuing.&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Optimization]]&lt;br /&gt;
[[Category:Chipset]]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Assembly_Code_Optimization&amp;diff=30176</id>
		<title>Assembly Code Optimization</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Assembly_Code_Optimization&amp;diff=30176"/>
		<updated>2016-04-30T17:14:08Z</updated>

		<summary type="html">&lt;p&gt;Notaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Assembly code optimization on the Cortex-A8 ==&lt;br /&gt;
This guide presents specific optimization techniques for the [[ARM]] Cortex-A8 processor and its dual-issue, in-order pipeline.&lt;br /&gt;
&lt;br /&gt;
== Use the ARMv7 movw/movt instructions ==&lt;br /&gt;
Newer ARM processors allow loading 32-bit values as two 16-bit immediates.  The movw instruction loads the lower 16 bits, and movt loads the upper 16 bits.  The movw instruction clears the upper 16 bits, so that 16-bit values can be loaded using a single instruction.  The movt instruction does not affect the lower bits.&lt;br /&gt;
&lt;br /&gt;
On older ARM processors, it was common to load 32-bit values with a PC-relative load.  This should be avoided because it may result in a cache miss.&lt;br /&gt;
&lt;br /&gt;
== Branch Prediction ==&lt;br /&gt;
There is a one-cycle stall in instruction fetch when a branch is predicted taken.  It is therefore preferable to structure code so that the most likely code path is the one where the branch is not taken.&lt;br /&gt;
&lt;br /&gt;
Unconditional branches may be mispredicted, and load instructions which follow branches may be decoded and cause cache accesses.  Avoid placing load instructions after branches unless you intend the CPU to prefetch the addresses they reference.&lt;br /&gt;
&lt;br /&gt;
The branch predictor has a call/return stack for jumps which reference r14 or stack operations using r13 which load the program counter.  For best performance, make sure any pop, mov pc,lr or bx lr jumps to the same location as was set by the matching bl instruction.  For non-return jumps, use a register other than r14.&lt;br /&gt;
&lt;br /&gt;
Although instructions are decoded in pairs, the branch predictor can only predict one branch target per cycle.  If you have a conditional branch which is immediately followed by another branch, and the first branch is likely to be taken, place a no-operation instruction between the branches to prevent decoding and prediction of the second branch.  Inserting NOPs is detrimental if the first branch is infrequently taken.&lt;br /&gt;
&lt;br /&gt;
== Dual-Issue Restrictions ==&lt;br /&gt;
Only one branch instruction can issue per cycle.  Only one load or store instruction can issue per cycle.  Instructions which write to the same register can not issue together.&lt;br /&gt;
&lt;br /&gt;
There is a one-cycle delay before any written register can be used as the address of a subsequent load or store instruction.  There is a one-cycle delay before any written register can be used by an instruction which performs a shift or rotation on that register.&lt;br /&gt;
&lt;br /&gt;
There is one cycle delay before the result of a load can be used.  In the aforementioned cases involving subsequent shift or rotate instructions, or the address of a load or store instruction, the total delay is two cycles.  &lt;br /&gt;
&lt;br /&gt;
Stores occur at the end of the pipeline and store instructions can issue in the same cycle as another instruction which writes the same register.  Similarly, conditional branches can issue in the same cycle as flag-setting instructions because the branch is not resolved until the following cycle.  In all other cases, instructions can not issue together if the second instruction depends on the results of the first.&lt;br /&gt;
&lt;br /&gt;
== Instruction pairing restrictions following a branch ==&lt;br /&gt;
The Cortex-A8 processor normally fetches two instructions per cycle and the branch predictor tests each against the global history buffer.  However, there is only one entry in the branch target buffer for each pair of instructions.  Therefore, branch instructions, and certain instructions which resemble branches, may adversely affect branch prediction when present in pairs.  To reduce the risk of branch misprediction, avoid pairing branch instructions with the following:&lt;br /&gt;
&lt;br /&gt;
* Branch instructions&lt;br /&gt;
* Load instructions, whether or not they write r15&lt;br /&gt;
* Arithmetic/logic instructions which do not set flags and do not have an immediate value, whether or not they write r15&lt;br /&gt;
&lt;br /&gt;
Flag-setting instructions can be used to avoid this restriction.  Additionally, MOV instructions that do not have immediate values can be replaced with ADD, SUB, ORR, or EOR instructions using zero as an immediate value.&lt;br /&gt;
&lt;br /&gt;
== Code alignment ==&lt;br /&gt;
Code alignment should be used with caution.  Alignment has the potential to increase performance, but may be detrimental in some circumstances.&lt;br /&gt;
&lt;br /&gt;
Because the instruction decoder always fetches 64-bit aligned words from the level-1 instruction cache, aligning code can improve instruction fetch and decode.  However, the global history buffer of the branch predictor is indexed by the low bits of the instruction address.  Excessive code alignment can result in a suboptimal distribution of entries in the branch history tables and increase branch misprediction.  Additionally, the speculative prefetch may retrieve and decode instructions used as padding, even if those instructions are never executed.  The types of instructions used as padding will affect the branch predictor as stated above, and this may affect the prefetch of code into the instruction cache.&lt;br /&gt;
&lt;br /&gt;
== NEON ==&lt;br /&gt;
As the manual states, passing data from NEON (and VFP) back to ARM takes at least 20 cycles, but there are some tricks that can be used. The vmov instruction itself that is passing the data will not cause any stalls (provided the needed NEON register is already available), the stall will actually happen on any ARM instruction that follows instead (including branches). This means that:&lt;br /&gt;
* Multiple &amp;quot;vmov.32 rX, dY[Z]&amp;quot; can be done back-to-back and only have one stall after the whole sequence&lt;br /&gt;
* Additional NEON instructions can be issued after &amp;quot;vmov&amp;quot; without stalls (with enough instructions the stall can be hidden completely)&lt;br /&gt;
* Additional unrelated NEON instructions can be issued before &amp;quot;vmov&amp;quot; (to hide the latency of instruction that produces the source register data)&lt;br /&gt;
&lt;br /&gt;
Even though the VFP is not pipelined, the VFP vldr instructions are. &amp;quot;vldr s0, [r0]&amp;quot; will be faster than &amp;quot;vld1.32 {d0[0]}, [r0]&amp;quot; (2 vs 3 cycles, vldr also gives more flexible addressing mode). The same can't be said about &amp;quot;vmov sX, sY&amp;quot;, it waits for all previous instructions to complete before issuing.&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Optimization]]&lt;br /&gt;
[[Category:Chipset]]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Kernel_interface&amp;diff=30154</id>
		<title>Kernel interface</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Kernel_interface&amp;diff=30154"/>
		<updated>2016-02-28T16:18:28Z</updated>

		<summary type="html">&lt;p&gt;Notaz: line counter, minor updates&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{hint|For apps use higher level libraries/interfaces like SDL, Qt, X or similar for your own good (portability). It may be impossible to retain this layout on some major hardware revision, let's say Pandora 3000, and your program will break. Also this requires some level of Linux programming knowledge.}}&lt;br /&gt;
&lt;br /&gt;
In case you need to write low level code (you can't/don't want to use high level libs like [[SDL]]), you can use kernel interface. This is the recommended way to access hardware (as opposed to GP2X style of accessing chip registers by mmap'ing /dev/mem), because in case hardware changes are needed in future, they could be handled by kernel and all programs would still work. It also should allow several programs to work at the same time and should be more stable.&lt;br /&gt;
&lt;br /&gt;
==Input==&lt;br /&gt;
Buttons, keypad, touchscreen and [[nubs]] are all exposed through Linux event interface (EVDEV). All devices are represented by '''/dev/input/eventX''' files, which can be opened, read and queried (using ioctl calls). The reads can be synchronous (the read will only return when user does something, like presses the button), or asynchronous (the system will report what changed since the last time you asked).&lt;br /&gt;
&lt;br /&gt;
{{warning&lt;br /&gt;
|Don't hardcode device filenames in your program!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
For example, currently /dev/input/event2 represents game buttons, but in future it may become touchscreen. Scan input device names instead, example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
for (i = 0; 1; i++)&lt;br /&gt;
{&lt;br /&gt;
  sprintf(name, &amp;quot;/dev/input/event%i&amp;quot;, i);&lt;br /&gt;
  fd = open(name, O_RDONLY);&lt;br /&gt;
  if (fd &amp;lt; 0) break; /* no more devices */&lt;br /&gt;
  ioctl(fd, EVIOCGNAME(sizeof(name)), name);&lt;br /&gt;
  if (strcmp(name, &amp;quot;gpio-keys&amp;quot;) == 0)&lt;br /&gt;
    return fd; /* found the buttons! */&lt;br /&gt;
  close(fd); /* we don't need this device */&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
List of device names and events they send:&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!name&lt;br /&gt;
!description&lt;br /&gt;
!event.type&lt;br /&gt;
!event.code&lt;br /&gt;
!event.value&lt;br /&gt;
|-&lt;br /&gt;
|keypad&lt;br /&gt;
|keypad&lt;br /&gt;
|EV_KEY&lt;br /&gt;
|KEY_0...KEY_Z, KEY_BACKSPACE, KEY_LEFTSHIFT, KEY_SPACE, KEY_ENTER, KEY_COMMA, KEY_DOT, KEY_FN&lt;br /&gt;
|0 - released&amp;lt;br&amp;gt; 1 - pressed&amp;lt;br&amp;gt; 2 - autorepeat event&lt;br /&gt;
|-&lt;br /&gt;
|gpio-keys&lt;br /&gt;
|game buttons&lt;br /&gt;
|EV_KEY&lt;br /&gt;
|KEY_UP, KEY_DOWN, KEY_LEFT, KEY_RIGHT, KEY_MENU (Pandora button), KEY_LEFTALT (Start), KEY_LEFTCTRL (Select), KEY_PAGEUP (Y/North), KEY_HOME (A/East), KEY_PAGEDOWN (X/South), KEY_END (B/West), KEY_RIGHTSHIFT (Shoulder L), KEY_RIGHTCTRL (Shoulder R), KEY_KPPLUS (Shoulder L2), KEY_KPMINUS (Shoulder R2), KEY_COFFEE (Hold)&lt;br /&gt;
|0 - released&amp;lt;br&amp;gt; 1 - pressed&lt;br /&gt;
|-&lt;br /&gt;
|gpio-keys&lt;br /&gt;
|lid state&lt;br /&gt;
|EV_SW&lt;br /&gt;
|SW_LID&lt;br /&gt;
|0 - closing&amp;lt;br&amp;gt; 1 - opening&lt;br /&gt;
|-&lt;br /&gt;
|touchscreen&lt;br /&gt;
|touchscreen&lt;br /&gt;
|EV_ABS&lt;br /&gt;
|ABS_X, ABS_Y, ABS_PRESSURE&lt;br /&gt;
|varies, use calibration data&lt;br /&gt;
|-&lt;br /&gt;
|nub0&lt;br /&gt;
|left nub&lt;br /&gt;
|EV_ABS&lt;br /&gt;
|ABS_X, ABS_Y&lt;br /&gt;
| -256 (Left/Up)&amp;lt;br&amp;gt;0&amp;lt;br&amp;gt;+256 (Right/Down)&lt;br /&gt;
|-&lt;br /&gt;
|nub1&lt;br /&gt;
|right nub&lt;br /&gt;
|EV_ABS&lt;br /&gt;
|ABS_X, ABS_Y&lt;br /&gt;
| -256 (Left/Up))&amp;lt;br&amp;gt;0&amp;lt;br&amp;gt;+256 (Right/Down)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Sample code:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://beagleboard.googlecode.com/files/evtest.c evtest.c]&lt;br /&gt;
[http://git.openpandora.org/cgi-bin/gitweb.cgi?p=pandora-misc.git;a=blob;f=op_test_inputs.c;hb=HEAD op_test_inputs.c]&lt;br /&gt;
&lt;br /&gt;
===Nubs===&lt;br /&gt;
Nubs have 3 modes that can be switched during runtime: absolute, mouse, mbuttons; this can be done by writing one of those 3 strings to /proc/pandora/nubX/mode . On mode change /dev/input/event* device reenumeration starts and files belonging to nubs are recreated and must be reopened.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Warning:&amp;lt;/strong&amp;gt; it is not guaranteed that input files will finish recreating after a write to /proc/pandora/nubX/mode finishes, it is application's responsibility to wait until those files are available.&lt;br /&gt;
&lt;br /&gt;
To solve the above problem, the OS provides a helper script that will wait for enumeration to complete:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/usr/pandora/scripts/op_nubchange.sh &amp;lt;left_num_mode&amp;gt; &amp;lt;right_nub_mode&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
op_nubchange.sh is not available on HF6 or earlier firmwares, to support them, something like this could be used:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
if [ -e /usr/pandora/scripts/op_nubchange.sh ]; then&lt;br /&gt;
  /usr/pandora/scripts/op_nubchange.sh absolute absolute&lt;br /&gt;
else&lt;br /&gt;
  echo absolute &amp;gt; /proc/pandora/nub0/mode&lt;br /&gt;
  echo absolute &amp;gt; /proc/pandora/nub1/mode&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Touchscreen===&lt;br /&gt;
Event interface returns uncalibrated values directly from driver, so you need to use tslib or manage calibration yourself (using data from /etc/pointercal).&lt;br /&gt;
&lt;br /&gt;
===X11===&lt;br /&gt;
When using the direct kernel api for input, it is also important to stop X processing the events as well. To do this you can create an X window to eat the events. There is also a utility that comes with the Pandora to do this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
op_runfbapp ./yourapp&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
Pandora uses ALSA, but it has OSS emulation enabled too, so GP2X code should work.&lt;br /&gt;
&lt;br /&gt;
==Video==&lt;br /&gt;
===Architecture===&lt;br /&gt;
Framebuffer device (/dev/fbX) is supported. There are 3 framebuffers available ('''/dev/fb0''', /dev/fb1 and /dev/fb2), which represent 3 graphics/video layers on OMAP3 by default (but can be reconfigured). Only /dev/fb0 is enabled by default.&lt;br /&gt;
&lt;br /&gt;
OMAP3 display subsystem is controlled by a driver known as DSS2, which has various controls available on /sys/devices/platform/omapdss/ (but they are not meant to be changed by programs, so they are root writable only). The driver exposes 3 layers (called overlays) and 2 displays. Overlays 1 and 2 can perform hardware scaling on the fly using 5-tap poly-phase filter, overlay0 can not. Displays 0 and 1 represent LCD and TV respectively. By default the 3 framebuffers (/dev/fbX) are redirected to 3 overlays, which all output to the LCD. This configuration is not meant to be changed by programs, only firmware should manage these.&lt;br /&gt;
&lt;br /&gt;
/dev/fb2 is reserved for system use and requires root to access. Programs are free to use /dev/fb0 and /dev/fb1 as they please.&lt;br /&gt;
&lt;br /&gt;
===Basic usage===&lt;br /&gt;
====framebuffer interface====&lt;br /&gt;
Framebuffers can be accessed Linux fbdev interface:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
fbdev = open(&amp;quot;/dev/fb0&amp;quot;, O_RDWR);&lt;br /&gt;
buffer = mmap(0, 800*480*2, PROT_READ | PROT_WRITE, MAP_SHARED, fbdev, 0);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
(this is basic example, no error checks)&lt;br /&gt;
&lt;br /&gt;
the returned pointer can be used to draw on the screen.&lt;br /&gt;
&lt;br /&gt;
Be sure to #include &amp;lt;linux/fb.h&amp;gt; to get access to the FB device ioctl interface, and &amp;lt;sys/ioctl.h&amp;gt; for access to ioctl itself.&lt;br /&gt;
&lt;br /&gt;
====double buffering====&lt;br /&gt;
This can be achieved using FBIOPAN_DISPLAY ioctl system call. For this you need to mmap framebuffer of double size&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
buffer1 = mmap(0, 800*480*2 * 2, PROT_WRITE, MAP_SHARED, fbdev, 0);&lt;br /&gt;
buffer2 = (char *)mem + 800*480*2;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then to display buffer2 you would call:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct fb_var_screeninfo fbvar;&lt;br /&gt;
ioctl(fbdev, FBIOGET_VSCREENINFO, &amp;amp;fbvar);&lt;br /&gt;
fbvar.yoffset = 480;&lt;br /&gt;
ioctl(fbdev, FBIOPAN_DISPLAY, &amp;amp;fbvar);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
going back to buffer1 would be repeating above with fbvar.yoffset = 0. Triple or quad buffering can be implemented using the same technique.&lt;br /&gt;
&lt;br /&gt;
====vertical sync====&lt;br /&gt;
Linux has standard FBIO_WAITFORVSYNC for this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
int arg = 0;&lt;br /&gt;
ioctl(fbdev, FBIO_WAITFORVSYNC, &amp;amp;arg);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
be sure to pass argument value 0 or it will not work.&lt;br /&gt;
&lt;br /&gt;
Some toolchains don't have FBIO_WAITFORVSYNC defined in &amp;lt;linux/fb.h&amp;gt;, in which case you can define it in the following manner:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#ifndef FBIO_WAITFORVSYNC&lt;br /&gt;
  #define FBIO_WAITFORVSYNC _IOW('F', 0x20, __u32)&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=====adaptive vsync=====&lt;br /&gt;
Standard vsync has a problem: if the program takes slightly longer that one frame to update, calling FBIO_WAITFORVSYNC will wait for the whole next frame, wasting time. In the worst case this can halve the framerate, and the CPU ends up being not fully utilized. The program can try to combat this by measuring time since the last wait, but that is not reliable because ioctl may return long after the actual vsync as Linux may need to process other drivers or system threads before giving back control.&lt;br /&gt;
&lt;br /&gt;
To solve the above issue, SZ 1.74 (kernel 3.2.78) has introduced a new ioctl:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#ifndef OMAPFB_WAITFORVSYNC_FRAME&lt;br /&gt;
#define OMAPFB_WAITFORVSYNC_FRAME _IOWR('O', 70, unsigned int)&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
static unsigned int arg = 0;&lt;br /&gt;
ioctl(fbdev, FBIO_WAITFORVSYNC, &amp;amp;arg);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
OMAPFB_WAITFORVSYNC_FRAME has an unsigned int arg which is the current frame number (both an input and output). The ioctl only waits if the passed arg matches the current frame number that's maintained inside the kernel, otherwise it instantly returns. It always updates the arg to the current frame number on return.&lt;br /&gt;
&lt;br /&gt;
Making 'arg' static is the easiest way to make it work, but you can keep the variable anywhere else as long as it's preserved between ioctl calls.&lt;br /&gt;
&lt;br /&gt;
====line counter====&lt;br /&gt;
Since SZ 1.74 (kernel kernel 3.2.78) it's possible to read the LCD line counter:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#ifndef OMAPFB_GET_LINE_STATUS&lt;br /&gt;
#define OMAPFB_GET_LINE_STATUS _IOR('O', 71, int)&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
int counter;&lt;br /&gt;
ioctl(fd, OMAPFB_GET_LINE_STATUS, &amp;amp;counter);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
It returns the current line number (0-479) only during the active display. During VFP, vsync and VBP it returns 0, and when the screen is off (lid closed, etc) the hardware returns 2047.&lt;br /&gt;
&lt;br /&gt;
====hardware scaling====&lt;br /&gt;
Overlay1 (/dev/fb1) can be used to achieve hardware scaling. Technically overlay2 (fb2) can be used for this too, but it is reserved for TV-out functionality and only usable by root, so don't use it. The overlay is configured using series of standard and OMAP specific ioctl calls, but the system ships with some tools to achieve this from scripts too. This way the framebuffer can be set up for some arbitrary size (say 320x240) and can output to LCD as 800x480 with hardware scaling.&lt;br /&gt;
Here is an example script:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ofbset -fb /dev/fb1 -pos 0 0 -size 800 480 -mem 307200 -en 1&lt;br /&gt;
fbset -fb /dev/fb1 -g 320 240 320 480 16&lt;br /&gt;
&lt;br /&gt;
./your_app_here&lt;br /&gt;
&lt;br /&gt;
ofbset -fb /dev/fb1 -pos 0 0 -size 0 0 -mem 0 -en 0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What it does:&lt;br /&gt;
* allocates OMAP DSS layer, asks video output to be 800x480 at position 0,0 (could set it to 640x480 at 80,0 instead to get centered 2x scaling of 320x240). 307200 bytes of video memory are allocated for 2 320x240 16bpp screens (for doublebuffering).&lt;br /&gt;
* sets video mode to 320x240@16bpp, virtual resolution 320x480 for doublebuffering.&lt;br /&gt;
* runs your app&lt;br /&gt;
* cleans the video layer on exit&lt;br /&gt;
&lt;br /&gt;
Now the program can act as if it works with 320x240 16bpp screen.&lt;br /&gt;
&lt;br /&gt;
For some example code, see how it's implemented in [http://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=sdl_omap.git;a=tree;f=src/video/omapdss;hb=HEAD pandora's SDL].&lt;br /&gt;
&lt;br /&gt;
====LCD refresh rate====&lt;br /&gt;
The OS has a dedicated script which can change the LCD refresh rate. It must be ran with sudo:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
sudo -n /usr/pandora/scripts/op_lcdrate.sh 50&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
From code, system() function can be used for this.&lt;br /&gt;
&lt;br /&gt;
'''Note''': this doesn't mean your program has to run as root to use this (it never should!), just run the script as shown above.&lt;br /&gt;
&lt;br /&gt;
====gamma====&lt;br /&gt;
Since SZ 1.52, gamma can be controlled with another script, the same way as LCD refresh:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
sudo -n /usr/pandora/scripts/op_gamma.sh 1.0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
where 1.0 is the gamma level. If supplied gamma level is 0, then user defaults are used (useful to set on exit). There is also an optional -b N argument (to be specified before gamma value), where N controls black level (0-255, useful to combat LCD ghosting).&lt;br /&gt;
&lt;br /&gt;
===Hardware scaling filter control===&lt;br /&gt;
The hardware scaler in pandora uses poly-phase 5-tap 8-phase filter. It is described in 15.4.2.3.4 and 15.6.1.3 sections of TRM. There are 40 coefficients programmable for both horizontal and vertical resampling (vertical resampling might also use 3 taps/24 coefficients, it depends on available pixel clock).&lt;br /&gt;
====using predefined filters====&lt;br /&gt;
Just run 'sudo /usr/pandora/scripts/op_videofir.sh &amp;lt;name&amp;gt;', where name currently can be:&lt;br /&gt;
* default - the default filter from OMAP manual&lt;br /&gt;
* none - nearest neighbor&lt;br /&gt;
====using custom filters====&lt;br /&gt;
run 'sudo /usr/pandora/scripts/op_videofir.sh &amp;lt;basename&amp;gt;', where basename* files contains coefficient table. The script will look for &amp;lt;basename&amp;gt;_h, &amp;lt;basename&amp;gt;_v3 and &amp;lt;basename&amp;gt;_v5 files for 5-tap horizontal, 3-tap vertical and 5-tap vertical configurations respectively. Pass absolute or relative path for basename with './', like './something'. The coefficients should be in a form of table like described in TRM, for example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
  0   0 128   0   0&lt;br /&gt;
 -1  13 124  -8   0&lt;br /&gt;
 -2  30 112 -11  -1&lt;br /&gt;
 -5  51  95 -11  -2&lt;br /&gt;
  0  -9  73  73  -9&lt;br /&gt;
 -2 -11  95  51  -5&lt;br /&gt;
 -1 -11 112  30  -2&lt;br /&gt;
  0  -8 124  13  -1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
For 3-tap table, first and last columns should contain zeros.&lt;br /&gt;
&lt;br /&gt;
==LEDs and Display backlight==&lt;br /&gt;
The LEDs can be controlled via '''/sys/class/leds/''', and then a file [http://www.gp32x.com/board/index.php?s=&amp;amp;showtopic=45309&amp;amp;view=findpost&amp;amp;p=673593]:&lt;br /&gt;
* pandora::sd1&lt;br /&gt;
* pandora::sd2&lt;br /&gt;
* pandora::charger&lt;br /&gt;
* pandora::power&lt;br /&gt;
* pandora::bluetooth&lt;br /&gt;
* pandora::wifi&lt;br /&gt;
* pandora::keypad_bl&lt;br /&gt;
Backlight can be controlled via '''/sys/class/backlight/'''.&lt;br /&gt;
&lt;br /&gt;
==Battery==&lt;br /&gt;
There is bq27500 battery monitoring chip onboard, that exports various files at /sys/class/power_supply/bq27500-0/ , for example 'capacity' tells charge percenage left. See Data_provided_by_Battery_and_Power_driver for more details.&amp;lt;br&amp;gt;&lt;br /&gt;
There are also similar directories at /sys/class/power_supply/twl4030_* that provide info while charging.&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
===Overclocking===&lt;br /&gt;
Can be performed by running a helper script&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo /usr/pandora/scripts/op_cpuspeed.sh X&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In case you want to do it from another program or non-interactively, you can use system() function (or similar) with:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo -n /usr/pandora/scripts/op_cpuspeed.sh -n X&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Note: you are advised not to change the clock explicitly from a program because optimal clock may differ on different pandora revisions, or somebody might want to run at different clock speed to save battery, CPU life, etc. . Let the user decide about the clock before running the program and set it using the system tools.&lt;br /&gt;
* Note: '-n' script argument is not available on pre-SuperZaxxon Final firmwares.&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Kernel]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Kernel_interface&amp;diff=30153</id>
		<title>Kernel interface</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Kernel_interface&amp;diff=30153"/>
		<updated>2016-02-28T15:46:48Z</updated>

		<summary type="html">&lt;p&gt;Notaz: adaptive vsync&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{hint|For apps use higher level libraries/interfaces like SDL, Qt, X or similar for your own good (portability). It may be impossible to retain this layout on some major hardware revision, let's say Pandora 3000, and your program will break. Also this requires some level of Linux programming knowledge.}}&lt;br /&gt;
&lt;br /&gt;
In case you need to write low level code (you can't/don't want to use high level libs like [[SDL]]), you can use kernel interface. This is the recommended way to access hardware (as opposed to GP2X style of accessing chip registers by mmap'ing /dev/mem), because in case hardware changes are needed in future, they could be handled by kernel and all programs would still work. It also should allow several programs to work at the same time and should be more stable.&lt;br /&gt;
&lt;br /&gt;
==Input==&lt;br /&gt;
Buttons, keypad, touchscreen and [[nubs]] are all exposed through Linux event interface (EVDEV). All devices are represented by '''/dev/input/eventX''' files, which can be opened, read and queried (using ioctl calls). The reads can be synchronous (the read will only return when user does something, like presses the button), or asynchronous (the system will report what changed since the last time you asked).&lt;br /&gt;
&lt;br /&gt;
{{warning&lt;br /&gt;
|Don't hardcode device filenames in your program!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
For example, currently /dev/input/event2 represents game buttons, but in future it may become touchscreen. Scan input device names instead, example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
for (i = 0; 1; i++)&lt;br /&gt;
{&lt;br /&gt;
  sprintf(name, &amp;quot;/dev/input/event%i&amp;quot;, i);&lt;br /&gt;
  fd = open(name, O_RDONLY);&lt;br /&gt;
  if (fd &amp;lt; 0) break; /* no more devices */&lt;br /&gt;
  ioctl(fd, EVIOCGNAME(sizeof(name)), name);&lt;br /&gt;
  if (strcmp(name, &amp;quot;gpio-keys&amp;quot;) == 0)&lt;br /&gt;
    return fd; /* found the buttons! */&lt;br /&gt;
  close(fd); /* we don't need this device */&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
List of device names and events they send:&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!name&lt;br /&gt;
!description&lt;br /&gt;
!event.type&lt;br /&gt;
!event.code&lt;br /&gt;
!event.value&lt;br /&gt;
|-&lt;br /&gt;
|keypad&lt;br /&gt;
|keypad&lt;br /&gt;
|EV_KEY&lt;br /&gt;
|KEY_0...KEY_Z, KEY_BACKSPACE, KEY_LEFTSHIFT, KEY_SPACE, KEY_ENTER, KEY_COMMA, KEY_DOT, KEY_FN&lt;br /&gt;
|0 - released&amp;lt;br&amp;gt; 1 - pressed&amp;lt;br&amp;gt; 2 - autorepeat event&lt;br /&gt;
|-&lt;br /&gt;
|gpio-keys&lt;br /&gt;
|game buttons&lt;br /&gt;
|EV_KEY&lt;br /&gt;
|KEY_UP, KEY_DOWN, KEY_LEFT, KEY_RIGHT, KEY_MENU (Pandora button), KEY_LEFTALT (Start), KEY_LEFTCTRL (Select), KEY_PAGEUP (Y/North), KEY_HOME (A/East), KEY_PAGEDOWN (X/South), KEY_END (B/West), KEY_RIGHTSHIFT (Shoulder L), KEY_RIGHTCTRL (Shoulder R), KEY_KPPLUS (Shoulder L2), KEY_KPMINUS (Shoulder R2), KEY_COFFEE (Hold)&lt;br /&gt;
|0 - released&amp;lt;br&amp;gt; 1 - pressed&lt;br /&gt;
|-&lt;br /&gt;
|gpio-keys&lt;br /&gt;
|lid state&lt;br /&gt;
|EV_SW&lt;br /&gt;
|SW_LID&lt;br /&gt;
|0 - closing&amp;lt;br&amp;gt; 1 - opening&lt;br /&gt;
|-&lt;br /&gt;
|touchscreen&lt;br /&gt;
|touchscreen&lt;br /&gt;
|EV_ABS&lt;br /&gt;
|ABS_X, ABS_Y, ABS_PRESSURE&lt;br /&gt;
|varies, use calibration data&lt;br /&gt;
|-&lt;br /&gt;
|nub0&lt;br /&gt;
|left nub&lt;br /&gt;
|EV_ABS&lt;br /&gt;
|ABS_X, ABS_Y&lt;br /&gt;
| -256 (Left/Up)&amp;lt;br&amp;gt;0&amp;lt;br&amp;gt;+256 (Right/Down)&lt;br /&gt;
|-&lt;br /&gt;
|nub1&lt;br /&gt;
|right nub&lt;br /&gt;
|EV_ABS&lt;br /&gt;
|ABS_X, ABS_Y&lt;br /&gt;
| -256 (Left/Up))&amp;lt;br&amp;gt;0&amp;lt;br&amp;gt;+256 (Right/Down)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Sample code:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://beagleboard.googlecode.com/files/evtest.c evtest.c]&lt;br /&gt;
[http://git.openpandora.org/cgi-bin/gitweb.cgi?p=pandora-misc.git;a=blob;f=op_test_inputs.c;hb=HEAD op_test_inputs.c]&lt;br /&gt;
&lt;br /&gt;
===Nubs===&lt;br /&gt;
Nubs have 3 modes that can be switched during runtime: absolute, mouse, mbuttons; this can be done by writing one of those 3 strings to /proc/pandora/nubX/mode . On mode change /dev/input/event* device reenumeration starts and files belonging to nubs are recreated and must be reopened.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Warning:&amp;lt;/strong&amp;gt; it is not guaranteed that input files will finish recreating after a write to /proc/pandora/nubX/mode finishes, it is application's responsibility to wait until those files are available.&lt;br /&gt;
&lt;br /&gt;
To solve the above problem, the OS provides a helper script that will wait for enumeration to complete:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/usr/pandora/scripts/op_nubchange.sh &amp;lt;left_num_mode&amp;gt; &amp;lt;right_nub_mode&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
op_nubchange.sh is not available on HF6 or earlier firmwares, to support them, something like this could be used:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
if [ -e /usr/pandora/scripts/op_nubchange.sh ]; then&lt;br /&gt;
  /usr/pandora/scripts/op_nubchange.sh absolute absolute&lt;br /&gt;
else&lt;br /&gt;
  echo absolute &amp;gt; /proc/pandora/nub0/mode&lt;br /&gt;
  echo absolute &amp;gt; /proc/pandora/nub1/mode&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Touchscreen===&lt;br /&gt;
Event interface returns uncalibrated values directly from driver, so you need to use tslib or manage calibration yourself (using data from /etc/pointercal).&lt;br /&gt;
&lt;br /&gt;
===X11===&lt;br /&gt;
When using the direct kernel api for input, it is also important to stop X processing the events as well. To do this you can create an X window to eat the events. There is also a utility that comes with the Pandora to do this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
op_runfbapp ./yourapp&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
Pandora uses ALSA, but it has OSS emulation enabled too, so GP2X code should work.&lt;br /&gt;
&lt;br /&gt;
==Video==&lt;br /&gt;
===Architecture===&lt;br /&gt;
Framebuffer device (/dev/fbX) is supported. There are 3 framebuffers available ('''/dev/fb0''', /dev/fb1 and /dev/fb2), which represent 3 graphics/video layers on OMAP3 by default (but can be reconfigured). Only /dev/fb0 is enabled by default.&lt;br /&gt;
&lt;br /&gt;
OMAP3 display subsystem is controlled by a driver known as DSS2, which has various controls available on /sys/devices/platform/omapdss/ (but they are not meant to be changed by programs, so they are root writable only). The driver exposes 3 layers (called overlays) and 2 displays. Overlays 1 and 2 can perform hardware scaling on the fly using 5-tap poly-phase filter, overlay0 can not. Displays 0 and 1 represent LCD and TV respectively. By default the 3 framebuffers (/dev/fbX) are redirected to 3 overlays, which all output to the LCD. This configuration is not meant to be changed by programs, only firmware should manage these.&lt;br /&gt;
&lt;br /&gt;
===Basic usage===&lt;br /&gt;
====framebuffer interface====&lt;br /&gt;
Framebuffers can be accessed Linux fbdev interface:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
fbdev = open(&amp;quot;/dev/fb0&amp;quot;, O_RDWR);&lt;br /&gt;
buffer = mmap(0, 800*480*2, PROT_READ | PROT_WRITE, MAP_SHARED, fbdev, 0);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
(this is basic example, no error checks)&lt;br /&gt;
&lt;br /&gt;
the returned pointer can be used to draw on the screen.&lt;br /&gt;
&lt;br /&gt;
Be sure to #include &amp;lt;linux/fb.h&amp;gt; to get access to the FB device ioctl interface, and &amp;lt;sys/ioctl.h&amp;gt; for access to ioctl itself.&lt;br /&gt;
&lt;br /&gt;
====double buffering====&lt;br /&gt;
This can be achieved using FBIOPAN_DISPLAY ioctl system call. For this you need to mmap framebuffer of double size&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
buffer1 = mmap(0, 800*480*2 * 2, PROT_WRITE, MAP_SHARED, fbdev, 0);&lt;br /&gt;
buffer2 = (char *)mem + 800*480*2;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then to display buffer2 you would call:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct fb_var_screeninfo fbvar;&lt;br /&gt;
ioctl(fbdev, FBIOGET_VSCREENINFO, &amp;amp;fbvar);&lt;br /&gt;
fbvar.yoffset = 480;&lt;br /&gt;
ioctl(fbdev, FBIOPAN_DISPLAY, &amp;amp;fbvar);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
going back to buffer1 would be repeating above with fbvar.yoffset = 0. Tripple or quad buffering can be implemented using the same technique.&lt;br /&gt;
&lt;br /&gt;
====vertical sync====&lt;br /&gt;
Linux has standard FBIO_WAITFORVSYNC for this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
int arg = 0;&lt;br /&gt;
ioctl(fbdev, FBIO_WAITFORVSYNC, &amp;amp;arg);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
be sure to pass argument value 0 or it will not work.&lt;br /&gt;
&lt;br /&gt;
Some toolchains don't have FBIO_WAITFORVSYNC defined in &amp;lt;linux/fb.h&amp;gt;, in which case you can define it in the following manner:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#ifndef FBIO_WAITFORVSYNC&lt;br /&gt;
  #define FBIO_WAITFORVSYNC _IOW('F', 0x20, __u32)&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=====adaptive vsync=====&lt;br /&gt;
Standard vsync has a problem: if the program takes slightly longer that one frame to update, calling FBIO_WAITFORVSYNC will wait for the whole next frame, wasting time. In the worst case this can halve the framerate, and the CPU ends up being not fully utilized. The program can try to combat this by measuring time since the last wait, but that is not reliable because ioctl may return long after the actual vsync as Linux may need to process other drivers or system threads.&lt;br /&gt;
&lt;br /&gt;
To solve the above issue, kernel 3.2.78 has introduced a new ioctl:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#ifndef OMAPFB_WAITFORVSYNC_FRAME&lt;br /&gt;
#define OMAPFB_WAITFORVSYNC_FRAME _IOWR('O', 70, unsigned int)&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
static unsigned int arg = 0;&lt;br /&gt;
ioctl(fbdev, FBIO_WAITFORVSYNC, &amp;amp;arg);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
OMAPFB_WAITFORVSYNC_FRAME has an unsigned int arg which is the current frame number (both an input and output). The ioctl only waits if the passed arg matches the current frame number, otherwise it instantly returns. It always updates the arg to the current frame number on return.&lt;br /&gt;
&lt;br /&gt;
Making 'arg' static is the easiest way to make it work, but you can keep the variable anywhere else as long as it's preserved between ioctl calls.&lt;br /&gt;
&lt;br /&gt;
====hardware scaling====&lt;br /&gt;
Overlay1 (/dev/fb1) can be used to achieve hardware scaling. Technically overlay2 (fb2) can be used for this too, but it is planned to be used by the system for TV-out functionality, so don't use it. The overlay is configured using series of standard and OMAP specific ioctl calls, but the system ships with some tools to achieve this from scripts too. This way the framebuffer can be set up for some arbitrary size (say 320x240) and can output to LCD as 800x480 with hardware scaling.&lt;br /&gt;
Here is an example script:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ofbset -fb /dev/fb1 -pos 0 0 -size 800 480 -mem 307200 -en 1&lt;br /&gt;
fbset -fb /dev/fb1 -g 320 240 320 480 16&lt;br /&gt;
&lt;br /&gt;
./your_app_here&lt;br /&gt;
&lt;br /&gt;
ofbset -fb /dev/fb1 -pos 0 0 -size 0 0 -mem 0 -en 0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What it does:&lt;br /&gt;
* allocates OMAP DSS layer, asks video output to be 800x480 at position 0,0 (could set it to 640x480 at 80,0 instead to get centered 2x scaling of 320x240). 307200 bytes of video memory are allocated for 2 320x240 16bpp screens (for doublebuffering).&lt;br /&gt;
* sets video mode to 320x240@16bpp, virtual resolution 320x480 for doublebuffering.&lt;br /&gt;
* runs your app&lt;br /&gt;
* cleans the video layer on exit&lt;br /&gt;
&lt;br /&gt;
Now the program can act as if it works with 320x240 16bpp screen.&lt;br /&gt;
&lt;br /&gt;
====LCD refresh rate====&lt;br /&gt;
The OS has a dedicated script which can change the LCD refresh rate. It must be ran with sudo:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
sudo -n /usr/pandora/scripts/op_lcdrate.sh 50&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
From code, system() function can be used for this.&lt;br /&gt;
&lt;br /&gt;
'''Note''': this doesn't mean your program has to run as root to use this (it never should!), just run the script as shown above.&lt;br /&gt;
&lt;br /&gt;
====gamma====&lt;br /&gt;
Since SZ 1.52, gamma can be controlled with another script, the same way as LCD refresh:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
sudo -n /usr/pandora/scripts/op_gamma.sh 1.0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
where 1.0 is the gamma level. If supplied gamma level is 0, then user defaults are used (useful to set on exit). There is also an optional -b N argument (to be specified before gamma value), where N controls black level (0-255, useful to combat LCD ghosting).&lt;br /&gt;
&lt;br /&gt;
===Hardware scaling filter control===&lt;br /&gt;
The hardware scaler in pandora uses poly-phase 5-tap 8-phase filter. It is described in 15.4.2.3.4 and 15.6.1.3 sections of TRM. There are 40 coefficients programmable for both horizontal and vertical resampling (vertical resampling might also use 3 taps/24 coefficients, it depends on available pixel clock).&lt;br /&gt;
====using predefined filters====&lt;br /&gt;
Just run 'sudo /usr/pandora/scripts/op_videofir.sh &amp;lt;name&amp;gt;', where name currently can be:&lt;br /&gt;
* default - the default filter from OMAP manual&lt;br /&gt;
* none - nearest neighbor&lt;br /&gt;
====using custom filters====&lt;br /&gt;
run 'sudo /usr/pandora/scripts/op_videofir.sh &amp;lt;basename&amp;gt;', where basename* files contains coefficient table. The script will look for &amp;lt;basename&amp;gt;_h, &amp;lt;basename&amp;gt;_v3 and &amp;lt;basename&amp;gt;_v5 files for 5-tap horizontal, 3-tap vertical and 5-tap vertical configurations respectively. Pass absolute or relative path for basename with './', like './something'. The coefficients should be in a form of table like described in TRM, for example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
  0   0 128   0   0&lt;br /&gt;
 -1  13 124  -8   0&lt;br /&gt;
 -2  30 112 -11  -1&lt;br /&gt;
 -5  51  95 -11  -2&lt;br /&gt;
  0  -9  73  73  -9&lt;br /&gt;
 -2 -11  95  51  -5&lt;br /&gt;
 -1 -11 112  30  -2&lt;br /&gt;
  0  -8 124  13  -1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
For 3-tap table, first and last columns should contain zeros.&lt;br /&gt;
&lt;br /&gt;
==LEDs and Display backlight==&lt;br /&gt;
The LEDs can be controlled via '''/sys/class/leds/''', and then a file [http://www.gp32x.com/board/index.php?s=&amp;amp;showtopic=45309&amp;amp;view=findpost&amp;amp;p=673593]:&lt;br /&gt;
* pandora::sd1&lt;br /&gt;
* pandora::sd2&lt;br /&gt;
* pandora::charger&lt;br /&gt;
* pandora::power&lt;br /&gt;
* pandora::bluetooth&lt;br /&gt;
* pandora::wifi&lt;br /&gt;
* pandora::keypad_bl&lt;br /&gt;
Backlight can be controlled via '''/sys/class/backlight/'''.&lt;br /&gt;
&lt;br /&gt;
==Battery==&lt;br /&gt;
There is bq27500 battery monitoring chip onboard, that exports various files at /sys/class/power_supply/bq27500-0/ , for example 'capacity' tells charge percenage left. See Data_provided_by_Battery_and_Power_driver for more details.&amp;lt;br&amp;gt;&lt;br /&gt;
There are also similar directories at /sys/class/power_supply/twl4030_* that provide info while charging.&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
===Overclocking===&lt;br /&gt;
Can be performed by running a helper script&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo /usr/pandora/scripts/op_cpuspeed.sh X&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In case you want to do it from another program or non-interactively, you can use system() function (or similar) with:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo -n /usr/pandora/scripts/op_cpuspeed.sh -n X&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Note: you are advised not to change the clock explicitly from a program because optimal clock may differ on different pandora revisions, or somebody might want to run at different clock speed to save battery, CPU life, etc. . Let the user decide about the clock before running the program and set it using the system tools.&lt;br /&gt;
* Note: '-n' script argument is not available on pre-SuperZaxxon Final firmwares.&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Kernel]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Hardware_Hacking&amp;diff=30029</id>
		<title>Hardware Hacking</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Hardware_Hacking&amp;diff=30029"/>
		<updated>2015-02-19T18:10:30Z</updated>

		<summary type="html">&lt;p&gt;Notaz: link to schematics&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{introNote|About custom hardware extensions, see also [[Kernel interface]]}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Complete schematics==&lt;br /&gt;
[http://boards.openpandora.org/page/articles.html/_/development/openhardware Available on the main website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Official Hackers Manual==&lt;br /&gt;
There is a LOT of great information in this:&lt;br /&gt;
[http://www.openpandora.org/downloads/PANDORA_Hackers_manual_v101.pdf Pandora Hackers Manual v1.01 by MWeston]&lt;br /&gt;
[http://www.openpandora.org/downloads/PANDORA_Hackers_manual_v100.pdf v1.00 by MWeston]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Labels==&lt;br /&gt;
*silkprint, battery label, version label etc.&lt;br /&gt;
[http://www.openpandora.org/downloads/files/Pandora_Labels.zip labels]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;* License for the Labels and Manual:&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* All files and documents within this ZIP archive are free for any use (commercial and non-commercial).&lt;br /&gt;
* &lt;br /&gt;
* You can do with them whatever you want - but you have to include the original ownership of them.&lt;br /&gt;
* &lt;br /&gt;
* The files are owned by&lt;br /&gt;
* &lt;br /&gt;
* OpenPandora GmbH&lt;br /&gt;
* Michael Mrozek&lt;br /&gt;
* Schäffbräustr. 11&lt;br /&gt;
* 85049 Ingolstadt&lt;br /&gt;
* Germany&lt;br /&gt;
* &lt;br /&gt;
* EvilDragon@openpandora.org&lt;br /&gt;
* www.openpandora.org&lt;br /&gt;
* &lt;br /&gt;
&amp;lt;big&amp;gt;* (End Of license)&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Pinouts==&lt;br /&gt;
Here's a list of pinouts for the various connectors and boards.&lt;br /&gt;
&lt;br /&gt;
Here's a pic of the board, some of the pinouts can be seen on it. [http://pandorapress.net/files/2010/02/rev5.jpg]&lt;br /&gt;
&lt;br /&gt;
==Ext Connector==&lt;br /&gt;
[[Image:Cable_connector pinout.png|thumb|TV cable connector]]&lt;br /&gt;
''What does it have?''&lt;br /&gt;
* UART2&lt;br /&gt;
* UART3&lt;br /&gt;
* TV out&lt;br /&gt;
* Stereo line out&lt;br /&gt;
* Stereo line in&lt;br /&gt;
* The UART lines can also be used as GPIO (six of them) and PWM lines (four of them).&lt;br /&gt;
&lt;br /&gt;
[[EXT_Connector | EXT Connector]]&lt;br /&gt;
&lt;br /&gt;
[[TV-out_cable | TV-out cable]]&lt;br /&gt;
&lt;br /&gt;
==Battery==&lt;br /&gt;
[[Image:Battery.jpg|thumb]]&lt;br /&gt;
* 3.7V &lt;br /&gt;
* Lithium polymer single cell battery&lt;br /&gt;
* 4000 mAH, 4 AH&lt;br /&gt;
* battery cover here: [http://www.openpandora.org/images/Battery2.jpg]&lt;br /&gt;
* reading out battery information: [[http://pandorawiki.org/Power_modes#Data_provided_by_battery_and_power_driver]]&lt;br /&gt;
&lt;br /&gt;
==Internal connections==&lt;br /&gt;
&lt;br /&gt;
===LCD===&lt;br /&gt;
* TD043MTEA1 [http://beyondinfinite.com/lcd/Library/Toppoly/TD043MTEA1.pdf datasheet]&lt;br /&gt;
* LTPS (8-bit parallel input for R, G and B, with separate horizontal and vertical sync)&lt;br /&gt;
* 3.0V&lt;br /&gt;
&lt;br /&gt;
===UART===&lt;br /&gt;
* UART2 and 3 are available via the EXT connector, and via internal solder pads on the latest revision&lt;br /&gt;
** UART2 appears to support hardware flow control with RTS/CTS lines&lt;br /&gt;
** On the 2.6.27 Kernel UART3 is /dev/ttyS0&lt;br /&gt;
** On 2.6.37 or later, UART2 is accessible through /dev/ttyO1, UART3 is on /dev/ttyO2&lt;br /&gt;
&lt;br /&gt;
===GPIO===&lt;br /&gt;
* 6 are available on the EXT connector&lt;br /&gt;
* 7 are internal, 2 of which can be used as extra shoulder buttons&lt;br /&gt;
* 1 located on the LCD cable&lt;br /&gt;
&lt;br /&gt;
===JTAG===&lt;br /&gt;
* Yes, 1.8V 10-pin (board label JTAG)&lt;br /&gt;
&lt;br /&gt;
===I&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C===&lt;br /&gt;
* One at 1.8V from the OMAP (board label I2C3-1V8)&lt;br /&gt;
* One at 2.8V (board label I2C3-2V8)&lt;br /&gt;
&lt;br /&gt;
=== USB ===&lt;br /&gt;
* No internal USB ports&lt;br /&gt;
&lt;br /&gt;
===Extra LEDs===&lt;br /&gt;
LED7 and LED8 can be added. You need to add FETs (Q17 and Q18) and resistors (R165, R166, R167 and R168)&lt;br /&gt;
See the official &amp;quot;Pandora Hacker Guide&amp;quot; from Michael Weston for more details and component values.&lt;br /&gt;
&lt;br /&gt;
==Breakout Board==&lt;br /&gt;
[[Image:Breakoutboard.jpg|thumb|alt=Developer's breakout board|Developer's breakout board]]&lt;br /&gt;
This is the breakout board used by Pandora team members during development. Only a small number were made, and they are not available to the public. However a similar product (or gerber files) may be released in the future. A schematic for this board is available here: http://openpandora.ca/schematic/AV_Board_schematic.pdf&lt;br /&gt;
&lt;br /&gt;
==Mods==&lt;br /&gt;
*[http://boards.openpandora.org/topic/11741-hmc-hardware-hack-1-keyboard-led-light/ Keyboard light]&lt;br /&gt;
*[http://boards.openpandora.org/index.php/topic/10722-hardware-hack-pandora-rumble-edition/?hl=%2Brumble+%2Bedition Rumble]&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
[[Category:Hacking]]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=SGX_drivers&amp;diff=28249</id>
		<title>SGX drivers</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=SGX_drivers&amp;diff=28249"/>
		<updated>2013-10-15T22:48:27Z</updated>

		<summary type="html">&lt;p&gt;Notaz: versions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Releases==&lt;br /&gt;
TI has released several SGX driver versions over time, that are based on Imagination Technologies SGX DDK for Linux, hence there are two version numbers associated with single release: TI release version and Imgtech DDK version. In each release kernel driver sources are provided and precompiled libraries providing OpenGL/OpenVG functionality.&amp;lt;br&amp;gt;&lt;br /&gt;
On pandora, different driver versions can be installed using a pnd from [http://boards.openpandora.org/index.php/topic/12233-sgx-driver-installer-beta/ this page].&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
!TI version&lt;br /&gt;
!SGX DDK version&lt;br /&gt;
!Date&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|3.00.00.08a&lt;br /&gt;
|1.3.13.1607&lt;br /&gt;
|2009-06-30&lt;br /&gt;
|-&lt;br /&gt;
|3.00.00.09&lt;br /&gt;
|1.3.13.1832&lt;br /&gt;
|2009-11-16&lt;br /&gt;
|-&lt;br /&gt;
|3.01.00.02&lt;br /&gt;
|1.4.14.2514&lt;br /&gt;
|2009-11-30&lt;br /&gt;
|-&lt;br /&gt;
|3.01.00.06&lt;br /&gt;
|1.4.14.2616&lt;br /&gt;
|2010-04-06&lt;br /&gt;
|ES5 introduced&lt;br /&gt;
|-&lt;br /&gt;
|3.01.00.07&lt;br /&gt;
|1.4.14.2616&lt;br /&gt;
|2010-08-18&lt;br /&gt;
|-&lt;br /&gt;
|4.00.00.01&lt;br /&gt;
|1.4.14.2616&lt;br /&gt;
|2010-09-09&lt;br /&gt;
|last working ES2&lt;br /&gt;
|-&lt;br /&gt;
|4.03.00.01&lt;br /&gt;
|1.6.16.3977&lt;br /&gt;
|2011-01-27&lt;br /&gt;
|-&lt;br /&gt;
|4.03.00.02&lt;br /&gt;
|1.6.16.3977&lt;br /&gt;
|2011-03-10&lt;br /&gt;
|-&lt;br /&gt;
|4.04.00.01&lt;br /&gt;
|1.6.16.4117&lt;br /&gt;
|2011-07-27&lt;br /&gt;
|introduces DRI2 dependency&lt;br /&gt;
|-&lt;br /&gt;
|4.04.00.02&lt;br /&gt;
|1.6.16.4117&lt;br /&gt;
|2011-08-03&lt;br /&gt;
|-&lt;br /&gt;
|4.04.00.03&lt;br /&gt;
|1.6.16.4117&lt;br /&gt;
|2011-08-30&lt;br /&gt;
|-&lt;br /&gt;
|4.04.00.04&lt;br /&gt;
|?&lt;br /&gt;
|2011-09-29&lt;br /&gt;
|internal only (engineering drop) release&lt;br /&gt;
|-&lt;br /&gt;
|4.05.00.01&lt;br /&gt;
|1.6.16.4117&lt;br /&gt;
|2011-10-25&lt;br /&gt;
|4.04 + build fixes, no more ES2 libs&lt;br /&gt;
|-&lt;br /&gt;
|4.05.00.02&lt;br /&gt;
|1.6.16.4117&lt;br /&gt;
|2011-10-27&lt;br /&gt;
|-&lt;br /&gt;
|4.05.00.03&lt;br /&gt;
|1.6.16.4117&lt;br /&gt;
|2011-12-14&lt;br /&gt;
|-&lt;br /&gt;
|4.06.00.01&lt;br /&gt;
|1.7.17.783851&lt;br /&gt;
|2012-04-03&lt;br /&gt;
|-&lt;br /&gt;
|4.06.00.02&lt;br /&gt;
|1.7.17.867897&lt;br /&gt;
|2012-05-30&lt;br /&gt;
|-&lt;br /&gt;
|4.06.00.03&lt;br /&gt;
|1.7.17.867897&lt;br /&gt;
|2012-06-18&lt;br /&gt;
|-&lt;br /&gt;
|4.07.00.01&lt;br /&gt;
|1.7.17.867897&lt;br /&gt;
|2012-09-06&lt;br /&gt;
|missing libs&lt;br /&gt;
|-&lt;br /&gt;
|4.08.00.01&lt;br /&gt;
|1.9.19.2139099&lt;br /&gt;
|2012-09-28&lt;br /&gt;
|&amp;quot;tested on AM parts only&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|4.08.00.02&lt;br /&gt;
|1.9.19.2188537&lt;br /&gt;
|2012-12-10&lt;br /&gt;
|&amp;quot;tested on AM parts only&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|4.09.00.01&lt;br /&gt;
|1.9.19.2188537&lt;br /&gt;
|2013-05-14&lt;br /&gt;
|&amp;quot;tested on AM parts only&amp;quot; This release is build tested only for SUPPORT_XORG=0 against 3.8 kernel&lt;br /&gt;
|-&lt;br /&gt;
|4.10.00.01&lt;br /&gt;
|1.10.2359475&lt;br /&gt;
|2013-07-16&lt;br /&gt;
|&amp;quot;tested on AM parts only&amp;quot; This release is build tested only against 3.8 kernel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Android releases'''&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
!TI version&lt;br /&gt;
!SGX DDK version&lt;br /&gt;
|-&lt;br /&gt;
|3.01.00.03&lt;br /&gt;
|1.5.15.2766&lt;br /&gt;
|-&lt;br /&gt;
|4.03.00.01&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|4.03.01.00&lt;br /&gt;
|?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Library variants==&lt;br /&gt;
Each TI release comes with different set of libraries for different SGX chip revisions. TI SGX drivers use weird naming of SGX chip versions which is inconsistent with OMAP chip revision or SGX chip revision names. As various pandora versions use different OMAP chip versions, this may become rather confusing, so hopefully this table can help.&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
!SoC name&lt;br /&gt;
!SoC version&lt;br /&gt;
!SGX core revision&lt;br /&gt;
!TI diver name&lt;br /&gt;
!Pandora name&lt;br /&gt;
|-&lt;br /&gt;
|OMAP3530&lt;br /&gt;
|ES2.1&lt;br /&gt;
|1.0.3&lt;br /&gt;
|ES2.0&lt;br /&gt;
|CC/256M&lt;br /&gt;
|-&lt;br /&gt;
|OMAP3530&lt;br /&gt;
|ES3.1&lt;br /&gt;
|1.2.1&lt;br /&gt;
|ES3.0&lt;br /&gt;
|Rebirth&lt;br /&gt;
|-&lt;br /&gt;
|DM3730&lt;br /&gt;
|ES1.x&lt;br /&gt;
|1.2.5&lt;br /&gt;
|ES5.0&lt;br /&gt;
|1GHz&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Developer info==&lt;br /&gt;
===Driver operation modes===&lt;br /&gt;
The drivers seem to have 2 modes of operation - &amp;quot;framebuffer mode&amp;quot; and &amp;quot;X mode&amp;quot;. Framebuffer mode appears to be noticeably faster in some cases, presumably because in X mode the driver is rendering to offscreen buffer and then manually blitting to X window, even if it's fullscreen. Also at the time of this writing, drivers starting from 4.04.00.01 only work in framebuffer mode due to some unsolved DRI2 issues.&lt;br /&gt;
&lt;br /&gt;
The mode is selected depending on how EGL is initialized, if you use EGL_DEFAULT_DISPLAY for eglGetDisplay() and NULL window for eglCreateWindowSurface(), you get framebuffer mode, else if you pass real display and window handles to those functions, you'll get X mode. Note that in framebuffer mode the driver will fight with X for display, so you need to create fullscreen window to stop X from redrawing (SDL can be used for that).&lt;br /&gt;
&lt;br /&gt;
===Double buffering in GL===&lt;br /&gt;
It is unclear when the driver decides to use double buffering, sometimes it does, sometimes it doesn't (the later is more usual), so there is often tearing visible. It is possible to force the driver to use double buffering by using a file named powervr.ini with this content:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
WindowSystem=libpvrPVR2D_FLIPWSEGL.so&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The driver is looking for this file in current working directory first, and then in /etc/ .&lt;br /&gt;
&lt;br /&gt;
==Pandora 3D acceleration capabilities (PowerVR SGX)==&lt;br /&gt;
&lt;br /&gt;
This is based on the specification of the OMAP 35xx chip found at [http://www.ti.com/product/omap3530]:&lt;br /&gt;
&lt;br /&gt;
The main points of interest from the below list are: &lt;br /&gt;
* OpenGL-ES 1.1 and 2.0&lt;br /&gt;
* OpenVG 1.0.1 support&lt;br /&gt;
* Bilinear, trilinear, and anisotropic texture filtering&lt;br /&gt;
* Nonsquare textures&lt;br /&gt;
* 2048 by 2048 maximum texture / framebuffer size&lt;br /&gt;
* 4x multisampling&lt;br /&gt;
* 16x full scene anti-aliasing&lt;br /&gt;
* Multithreaded shader engine with 16 simultaneous threads of execution and up to 64 simultaneous data instances.&lt;br /&gt;
&lt;br /&gt;
Full feature list:&lt;br /&gt;
* PowerVR SGX Main Features&lt;br /&gt;
** 2D graphics, 3D graphics, vector graphics, and programmable GPU functions&lt;br /&gt;
** Tile-based architecture&lt;br /&gt;
** Universal scalable shader engine (USSE) – multithreaded engine incorporating vertex shader and fragment shader functionality&lt;br /&gt;
** Advanced shader feature set – in excess of Microsoft VS3.0, PS3.0, and OGL2.0&lt;br /&gt;
** Industry standard API support - OpenGL-ES 1.1 and 2.0, OpenVG 1.0.1&lt;br /&gt;
** Fine-grained task switching, load balancing, and power management&lt;br /&gt;
** Advanced geometry direct memory access (DMA) driven operation for minimum CPU interaction&lt;br /&gt;
** Programmable high-quality image anti-aliasing&lt;br /&gt;
** PowerVR SGX core MMU for address translation from the core virtual address to the external physical address (up to 4GB address range)&lt;br /&gt;
** Fully virtualized memory addressing for OS operation in a unified memory architecture&lt;br /&gt;
** 2D operations via the 3D pipeline&lt;br /&gt;
* SGX 3D features&lt;br /&gt;
** Deferred pixel shading&lt;br /&gt;
** On-chip tile floating point depth buffer&lt;br /&gt;
** 8-bit stencil with on-chip tile stencil buffer&lt;br /&gt;
** 8 parallel depth/stencil tests per clock&lt;br /&gt;
** Scissor test&lt;br /&gt;
** Texture support:&lt;br /&gt;
*** Cube map&lt;br /&gt;
*** Projected textures&lt;br /&gt;
*** 2D textures&lt;br /&gt;
*** nonsquare textures&lt;br /&gt;
** Texture formats:&lt;br /&gt;
*** RGBA 8888,565,1555&lt;br /&gt;
*** Monochromatic 8, 16, 16f, 32f, 32int&lt;br /&gt;
*** Dual channel, 8:8, 16:16, 16f:16f&lt;br /&gt;
*** Compressed textures PVR-TC1, PVR-TC2, ETC1&lt;br /&gt;
*** Programmable support for all YUV formats&lt;br /&gt;
** Resolution support:&lt;br /&gt;
*** Frame buffer maximum size = 2048 x 2048&lt;br /&gt;
*** Texture maximum size = 2048 x 2048&lt;br /&gt;
** Texture filtering:&lt;br /&gt;
*** Bilinear, tri-linear, anisotropic&lt;br /&gt;
*** Independent minimum and maximum control&lt;br /&gt;
** Anti-aliasing:&lt;br /&gt;
*** 4x multisampling&lt;br /&gt;
*** Up to 16x full scene anti-aliasing&lt;br /&gt;
*** Programmable sample positions&lt;br /&gt;
** Indexed primitive list support&lt;br /&gt;
*** Bus mastered&lt;br /&gt;
** Programmable vertex DMA&lt;br /&gt;
** Render to texture:&lt;br /&gt;
*** Including twiddled formats&lt;br /&gt;
*** Auto MipMap generation&lt;br /&gt;
** Multiple on-chip render targets (MRT). Note: Performance is limited when the on-chip memory is not available.&lt;br /&gt;
* Universal Scalable Shader Engine – Key Features - ''The (USSE) is the engine core of the PowerVR SGX architecture and supports a broad range of instructions.''&lt;br /&gt;
** Single programming model:&lt;br /&gt;
*** Multithreaded with 16 simultaneous execution threads and up to 64 simultaneous data instances&lt;br /&gt;
*** Zero-cost swapping in, and out, of threads&lt;br /&gt;
*** Cached program execution model&lt;br /&gt;
*** Dedicated pixel processing instructions&lt;br /&gt;
*** Dedicated video encode/decode instructions&lt;br /&gt;
** SIMD execution unit supporting operations in:&lt;br /&gt;
*** 32-bit IEEE-compliant float&lt;br /&gt;
*** 2-way 16-bit fixed point&lt;br /&gt;
*** 4-way 8-bit integer&lt;br /&gt;
*** 32-bit bit-wise (logical only)&lt;br /&gt;
** Static and dynamic flow control:&lt;br /&gt;
*** Subroutine calls&lt;br /&gt;
*** Loops&lt;br /&gt;
*** Conditional branches&lt;br /&gt;
*** Zero-cost instruction predication&lt;br /&gt;
** Procedural geometry:&lt;br /&gt;
*** Allows generation of primitives&lt;br /&gt;
*** Effective geometry compression&lt;br /&gt;
*** High-order surface support&lt;br /&gt;
** External data access:&lt;br /&gt;
*** Permits reads from main memory using cache&lt;br /&gt;
*** Permits writes to main memory&lt;br /&gt;
*** Data fence facility&lt;br /&gt;
*** Dependent texture reads&lt;br /&gt;
&lt;br /&gt;
==Useful links==&lt;br /&gt;
[http://processors.wiki.ti.com/index.php/OMAP35x_Graphics_SDK_Release_Notes_Archive TI release notes]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/index.html TI release downloads]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=SDL&amp;diff=27110</id>
		<title>SDL</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=SDL&amp;diff=27110"/>
		<updated>2013-04-21T16:21:15Z</updated>

		<summary type="html">&lt;p&gt;Notaz: /* Using SDL with OpenGL ES */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;SDL is popular library for graphics, sound and input. This page lists some things to know when using it on pandora.&lt;br /&gt;
&lt;br /&gt;
==Pandora optimized mode==&lt;br /&gt;
The SDL library included in pandora has a special mode (SDL internal driver) to make use of OMAP's features, like hardware scaling and double buffering. This mode is disabled by default because it doesn't support windowed mode and has some compatibility problems with some games. Information about how to use it can be found in [http://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=sdl_omap.git;a=blob;f=README.OMAP;hb=HEAD this readme].&lt;br /&gt;
&lt;br /&gt;
==Issues with standard SDL mode on pandora==&lt;br /&gt;
===Cursor drift in fullscreen mode===&lt;br /&gt;
When cursor is hidden (after SDL_ShowCursor(0) is called), touchscreen coordinates start to drift away over time, i.e. if you touch center of the screen, SDL may start reporting you touched the right or left edge. This is because SDL switches to relative mouse mode and starts warping the cursor when it's hidden. This is supposedly intended for 3D action games where cursor should never hit edge of screen and player should be able to look at some direction by moving the mouse to single direction as much as he wants (on pandora that can be accomplished with nubs or external mouse). Because some games rely on that feature to be functional, when not needed it should be disabled manually by:&lt;br /&gt;
* Setting environment variable SDL_MOUSE_RELATIVE=0, which can be easily done in launch script like this:&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export SDL_MOUSE_RELATIVE=0&lt;br /&gt;
./yourapp&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Not calling SDL_ShowCursor(0) and setting up [http://blogs.distant-earth.com/wp/?p=293 transparent cursor].&lt;br /&gt;
&lt;br /&gt;
===Using SDL with OpenGL ES===&lt;br /&gt;
This can be accomplished with SDL_GetWMInfo() call to get the required handles, like:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
SDL_SysWMinfo sysWmInfo;&lt;br /&gt;
SDL_VERSION(&amp;amp;sysWmInfo.version);&lt;br /&gt;
SDL_GetWMInfo(&amp;amp;sysWmInfo);&lt;br /&gt;
eglDisplay = eglGetDisplay((EGLNativeDisplayType)sysWmInfo.info.x11.display);&lt;br /&gt;
...&lt;br /&gt;
eglSurface = eglCreateWindowSurface(eglDisplay, eglConfig, (NativeWindowType)sysWmInfo.info.x11.window, NULL);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
This will allow to use GL on the window. Note that if you use fullscreen mode, because of how SGX drivers are implemented, you may get better performance if you ''don't'' specify display/window handles to run the GL driver in framebuffer mode, like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
eglDisplay = eglGetDisplay(EGL_DEFAULT_DISPLAY);&lt;br /&gt;
...&lt;br /&gt;
eglSurface = eglCreateWindowSurface(eglDisplay, eglConfig, NULL, NULL);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
You should still create fullscreen SDL window to prevent interference with Xorg and to have working input. See also [[SGX_drivers#Driver_operation_modes|SGX driver operation modes]].&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Development_Tools&amp;diff=27109</id>
		<title>Development Tools</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Development_Tools&amp;diff=27109"/>
		<updated>2013-04-21T16:20:23Z</updated>

		<summary type="html">&lt;p&gt;Notaz: add a link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Official Pandora Source Code Repository==&lt;br /&gt;
&lt;br /&gt;
{{Split section|All the firmware stuff}} &lt;br /&gt;
The official source repository is under GIT revision control; EvilDragon is the admin, but the repo has a web based browser built in.===&lt;br /&gt;
&lt;br /&gt;
Minor note on [[libpnd]] in the GIT; as skeezix (me) is too lazy to install vmware-tools for date sync, the check-in times are not accurate for libpnd; they're in order of course, but the actual date is usualyl off by many days, so don't sweat it.&lt;br /&gt;
&lt;br /&gt;
The actual GIT repository is here: [http://git.openpandora.org/cgi-bin/gitweb.cgi] It is recommended that you read the [[Kernel_status#openpandora.org_git_structure | git structure]] information before going too far.&lt;br /&gt;
&lt;br /&gt;
===Official Firmware images===&lt;br /&gt;
A Pandora specific repository is work-in-progress. From 1 July 2010, you can grab the latest ''unstable'' ready-to-be-flashed ubifs-images from [http://openpandora.org/firmware/ http://openpandora.org/firmware/] or the rootfs which you can [[Creating_a_bootable_SD_card | extract on your SD Card and boot]] from there.&lt;br /&gt;
&lt;br /&gt;
Be aware that these images are the most recent cutting edge. They might have some bugs, but should include any new fixes which are yet to be released as [[Hotfixes]]. Note they are also 'un-configured' so will take you through the first-boot process. You will obtain a slightly different result if you copy your existing rootfs to an SD card and boot from there.&lt;br /&gt;
&lt;br /&gt;
For ''stable'' released images, see other OpenPandora support pages. E.g. official forum [http://boards.openpandora.org/index.php/forum/41-pandora-os-superzaxxon-gnulinux/ software - pandora os] news.&lt;br /&gt;
&lt;br /&gt;
==Pandora Specific Libraries==&lt;br /&gt;
&lt;br /&gt;
===libpnd - the Pandora Library===&lt;br /&gt;
&lt;br /&gt;
[[libpnd]] is a collection of utilities that Pandora developers may find useful, as well as including the daemons and tools for creating and working with PXML.xml based applications (pnd files or unpacked application directories.)&lt;br /&gt;
&lt;br /&gt;
It is hoped the '''community will continue to expand this library''' over time!&lt;br /&gt;
&lt;br /&gt;
Some stubs are included as hints .. for instance, the first dev to build a clean /dev/gpio based input library should slip it into libpnd so that others may benefit as well, avoid fragmentation and application bugs.&lt;br /&gt;
&lt;br /&gt;
Continue into the main [[libpnd_hub|libpnd documentation hub]].&lt;br /&gt;
&lt;br /&gt;
===Notaz SDL - improved SDL for Pandora===&lt;br /&gt;
[[SDL]] on this wiki&amp;lt;br&amp;gt;&lt;br /&gt;
[http://boards.openpandora.org/index.php?/topic/6231-improved-sdl-for-pandora/Notaz enhanced SDL thread, on the boards]&lt;br /&gt;
&lt;br /&gt;
This library is very very useful for SDL-based ports and new games / apps.&lt;br /&gt;
&lt;br /&gt;
* hardware scaling support (up and down)&lt;br /&gt;
* doublebuffering support (can eliminate tearing)&lt;br /&gt;
* vsync support (can give smooth scrolling if done right)&lt;br /&gt;
* keymap change with a config file (porting aid)&lt;br /&gt;
&lt;br /&gt;
==Tentative Library Environment==&lt;br /&gt;
&lt;br /&gt;
===Information===&lt;br /&gt;
&lt;br /&gt;
'''Please note, that this information is hearsay/guesswork, and is yet to be confirmed on a production unit.'''&lt;br /&gt;
&lt;br /&gt;
For Pandora [http://en.wikipedia.org/wiki/Out_of_the_box (Out-Of-The-Box)]&lt;br /&gt;
* [http://www.gnu.org/software/libc glibc] (at a guess, version 2.6.1 or whatever is compatible with OpenEmbedded)&lt;br /&gt;
* [http://www.libsdl.org/ libSDL] (also a guess, latest available version of 1.2)&lt;br /&gt;
&lt;br /&gt;
For those interested in creating libraries, or needing more low-level access, read about the&lt;br /&gt;
[[kernel interface]].&lt;br /&gt;
&lt;br /&gt;
==Tools for Pandora Software Development==&lt;br /&gt;
 &lt;br /&gt;
* OpenEmbedded cross-compile environment (and Angstrom distro) [http://www.elinux.org/BeagleBoard#OpenEmbedded]&lt;br /&gt;
* CodeSourcery gcc[http://www.codesourcery.com/gnu_toolchains/arm]&lt;br /&gt;
** [http://www.codesourcery.com/gnu_toolchains/arm/portal/release313] - NB: OpenEmbedded uses the CodeSourcery 2007q3 to build the kernel, but uses gcc 4.3.1 to compile everything else.&lt;br /&gt;
* TI CodeComposer Studio: Free Evaluation Tools[http://focus.ti.com/dsp/docs/dspsupportaut.tsp?sectionId=3&amp;amp;tabId=416&amp;amp;familyId=44&amp;amp;toolTypeId=30]&lt;br /&gt;
* TI c6x Codegen tools for Linux[https://www-a.ti.com/downloads/sds_support/targetcontent/LinuxDspTools/download.html]; License [https://www-a.ti.com/downloads/sds_support/targetcontent/LinuxDspTools/doc/c6x/TILAW-%23180394-v1-Compiler_Clickwrap_For_OS_Community-2.html]; TI account required; this is *only* for Open Source development&lt;br /&gt;
* Das U-boot: The Universal Bootloader[http://www.denx.de/wiki/DULG/WebHome]&lt;br /&gt;
* Git - Fast Version Control System [http://git-scm.com/]; Good tuto: [http://www.trinitydesktop.org/wiki/bin/view/Developers/GIT]&lt;br /&gt;
&lt;br /&gt;
===Kernel Source===&lt;br /&gt;
&lt;br /&gt;
* A read-only GIT repository for the [[kernel_status|kernel]] source has been made available (November 2008); the note from ED is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;If anybody wants to take a sneak peek at the current kernel, we've got a read-only GIT setup which features the most recent version of the MK2 OpenPandora Kernel.&lt;br /&gt;
The git is: [git://git.openpandora.org/pandora-kernel.git]&lt;br /&gt;
Use the '''pandora-27-omap1''' branch for the moment, there will soon be a 2.6.28.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
* [[Kernel_build_instructions|Kernel build instructions]]&lt;br /&gt;
&lt;br /&gt;
===OpenGL===&lt;br /&gt;
&lt;br /&gt;
(See also [[OpenGLES On the Pandora]])&lt;br /&gt;
&lt;br /&gt;
* [[OpenGL ES]] 2.0 emulator for PC[http://www.imgtec.com/powervr/insider/sdkdownloads/index.asp#GLES2]  ''This works both on Linux and Windows. One needs to register with imgtec before downloading.''&lt;br /&gt;
** To build the applications a few environment variables need to be set (tested on Ubuntu Gutsy). Note that to run them, you do need an OpenGL 2.0 compliant gfx card.&lt;br /&gt;
*** LD_LIBRARY_PATH needs to be set to the folder holding the important libraries, such as libEGL.so ($SDK_PATH/Builds/OGLES2/LinuxPC/Lib might be enough)&lt;br /&gt;
*** To run the makefiles in the Training section you need to set a PLATFORM variable to either LinuxPC or LinuxGeneric. I have had success with LinuxPC.&lt;br /&gt;
*** See [http://pastebin.com/f3f9f159f] for a script that you can run to set these for you.&lt;br /&gt;
* [http://www.imgtec.com/powervr/insider/powervr-pvrtextool.asp PowerVR Texture creation tool]&lt;br /&gt;
** &amp;quot;PVRTexTool enables conversion of standard bitmap files (e.g. BMP, JPG, PNG, TGA, etc.) to any texture type supported by POWERVR MBX or POWERVR SGX hardware including PVRTC, DXT and ETC compressed formats. Both a GUI and command line version are supplied for Windows and Linux. There are also plug-ins for Autodesk 3ds Max, Maya and Adobe Photoshop.&amp;quot; - requires imgtec registration.&lt;br /&gt;
** ''Note, this is part of the main SDK'' - (Linux path to it is /SDKPackage/Utilities/PVRTexTool/)&lt;br /&gt;
&lt;br /&gt;
===Packaging===&lt;br /&gt;
(See also [[PND_quickstart#Making_PND_files|Making PND files]] and [[Libpnd_hub#PXML.xml_and_.pnd_files|the PND package format]])&lt;br /&gt;
&lt;br /&gt;
*[[Libpnd_hub#pnd_make.sh|pnd_make.sh]] - a straightforward shell script to build PND files from a prepared directory.  Included with libpnd and, therefore, in all Pandoras&lt;br /&gt;
*[http://www.gp32x.com/board/index.php?/topic/58587-pndbuilder/ PNDbuilder] - a graphical tool to build PNDs.  Can be used [http://freedomdown.squarespace.com/storage/PNDbuilder.zip in Windows] or [http://freedomdown.squarespace.com/storage/pndb.pnd on the Pandora].&lt;br /&gt;
*[http://www.gp32x.com/board/index.php?/topic/57350-distpnd/ distPND] - an extension to [http://docs.python.org/distutils/index.html Python's Distutils] designed to make PND files from Python source quickly and easily.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Profiling===&lt;br /&gt;
If you need performance analysis, you can find a compiled version of the &amp;quot;perf&amp;quot; tool there : http://boards.openpandora.org/index.php?/topic/9809-profiling/#entry181954&amp;lt;br&amp;gt;&lt;br /&gt;
Just unzip the tool somewhere and launch it with LD_LIBRARY_PATH set.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
See https://perf.wiki.kernel.org/index.php/Main_Page to learn how to use it and happy optimizations!&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Operating system]]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=SDL&amp;diff=27108</id>
		<title>SDL</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=SDL&amp;diff=27108"/>
		<updated>2013-04-21T16:19:01Z</updated>

		<summary type="html">&lt;p&gt;Notaz: /* Cursor drift in fullscreen mode */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;SDL is popular library for graphics, sound and input. This page lists some things to know when using it on pandora.&lt;br /&gt;
&lt;br /&gt;
==Pandora optimized mode==&lt;br /&gt;
The SDL library included in pandora has a special mode (SDL internal driver) to make use of OMAP's features, like hardware scaling and double buffering. This mode is disabled by default because it doesn't support windowed mode and has some compatibility problems with some games. Information about how to use it can be found in [http://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=sdl_omap.git;a=blob;f=README.OMAP;hb=HEAD this readme].&lt;br /&gt;
&lt;br /&gt;
==Issues with standard SDL mode on pandora==&lt;br /&gt;
===Cursor drift in fullscreen mode===&lt;br /&gt;
When cursor is hidden (after SDL_ShowCursor(0) is called), touchscreen coordinates start to drift away over time, i.e. if you touch center of the screen, SDL may start reporting you touched the right or left edge. This is because SDL switches to relative mouse mode and starts warping the cursor when it's hidden. This is supposedly intended for 3D action games where cursor should never hit edge of screen and player should be able to look at some direction by moving the mouse to single direction as much as he wants (on pandora that can be accomplished with nubs or external mouse). Because some games rely on that feature to be functional, when not needed it should be disabled manually by:&lt;br /&gt;
* Setting environment variable SDL_MOUSE_RELATIVE=0, which can be easily done in launch script like this:&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export SDL_MOUSE_RELATIVE=0&lt;br /&gt;
./yourapp&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Not calling SDL_ShowCursor(0) and setting up [http://blogs.distant-earth.com/wp/?p=293 transparent cursor].&lt;br /&gt;
&lt;br /&gt;
===Using SDL with OpenGL ES===&lt;br /&gt;
This can be accomplished with SDL_GetWMInfo() call to get the required handles, like:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
SDL_SysWMinfo sysWmInfo;&lt;br /&gt;
SDL_VERSION(&amp;amp;sysWmInfo.version);&lt;br /&gt;
SDL_GetWMInfo(&amp;amp;sysWmInfo);&lt;br /&gt;
eglDisplay = eglGetDisplay((EGLNativeDisplayType)sysWmInfo.info.x11.display);&lt;br /&gt;
...&lt;br /&gt;
eglSurface = eglCreateWindowSurface(eglDisplay, eglConfig, (NativeWindowType)sysWmInfo.info.x11.window, NULL);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
This will allow to use GL on the window. Note that if you use fullscreen mode, because of how SGX drivers are implemented, you may get better performance if you ''don't'' specify display/window handles to run the GL driver in framebuffer mode, like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
eglDisplay = eglGetDisplay(EGL_DEFAULT_DISPLAY);&lt;br /&gt;
...&lt;br /&gt;
eglSurface = eglCreateWindowSurface(eglDisplay, eglConfig, NULL, NULL);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
You should still create fullscreen SDL window to prevent interference with Xorg and to have working input. Se also [[SGX_drivers#Driver_operation_modes|SGX driver operation modes]].&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=SDL&amp;diff=27107</id>
		<title>SDL</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=SDL&amp;diff=27107"/>
		<updated>2013-04-21T16:17:35Z</updated>

		<summary type="html">&lt;p&gt;Notaz: Created page with &amp;quot;SDL is popular library for graphics, sound and input. This page lists some things to know when using it on pandora.  ==Pandora optimized mode== The SDL library included in pan...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;SDL is popular library for graphics, sound and input. This page lists some things to know when using it on pandora.&lt;br /&gt;
&lt;br /&gt;
==Pandora optimized mode==&lt;br /&gt;
The SDL library included in pandora has a special mode (SDL internal driver) to make use of OMAP's features, like hardware scaling and double buffering. This mode is disabled by default because it doesn't support windowed mode and has some compatibility problems with some games. Information about how to use it can be found in [http://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=sdl_omap.git;a=blob;f=README.OMAP;hb=HEAD this readme].&lt;br /&gt;
&lt;br /&gt;
==Issues with standard SDL mode on pandora==&lt;br /&gt;
===Cursor drift in fullscreen mode===&lt;br /&gt;
When cursor is hidden (after SDL_ShowCursor(0) is called), touchscreen coordinates start to drift away over time, i.e. if you touch center of the screen, SDL may start reporting you touched the right or left edge. This is because SDL switches to relative mouse mode and starts warping the cursor when it's hidden. This is supposedly intended for 3D action games where cursor should never hit edge of screen and player should be able to look at some direction by moving the mouse to single direction as much as he wants (on pandora that can be accomplished with nubs or external mouse). Because some games rely on that feature to be functional, it should be disabled manually by:&lt;br /&gt;
* Setting environment variable SDL_MOUSE_RELATIVE=0, which can be easily done in launch script like this:&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export SDL_MOUSE_RELATIVE=0&lt;br /&gt;
./yourapp&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Not calling SDL_ShowCursor(0) and setting up [http://blogs.distant-earth.com/wp/?p=293 transparent cursor].&lt;br /&gt;
&lt;br /&gt;
===Using SDL with OpenGL ES===&lt;br /&gt;
This can be accomplished with SDL_GetWMInfo() call to get the required handles, like:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
SDL_SysWMinfo sysWmInfo;&lt;br /&gt;
SDL_VERSION(&amp;amp;sysWmInfo.version);&lt;br /&gt;
SDL_GetWMInfo(&amp;amp;sysWmInfo);&lt;br /&gt;
eglDisplay = eglGetDisplay((EGLNativeDisplayType)sysWmInfo.info.x11.display);&lt;br /&gt;
...&lt;br /&gt;
eglSurface = eglCreateWindowSurface(eglDisplay, eglConfig, (NativeWindowType)sysWmInfo.info.x11.window, NULL);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
This will allow to use GL on the window. Note that if you use fullscreen mode, because of how SGX drivers are implemented, you may get better performance if you ''don't'' specify display/window handles to run the GL driver in framebuffer mode, like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
eglDisplay = eglGetDisplay(EGL_DEFAULT_DISPLAY);&lt;br /&gt;
...&lt;br /&gt;
eglSurface = eglCreateWindowSurface(eglDisplay, eglConfig, NULL, NULL);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
You should still create fullscreen SDL window to prevent interference with Xorg and to have working input. Se also [[SGX_drivers#Driver_operation_modes|SGX driver operation modes]].&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=SGX_drivers&amp;diff=27104</id>
		<title>SGX drivers</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=SGX_drivers&amp;diff=27104"/>
		<updated>2013-04-17T21:27:04Z</updated>

		<summary type="html">&lt;p&gt;Notaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Releases==&lt;br /&gt;
TI has released several SGX driver versions over time, that are based on Imagination Technologies SGX DDK for Linux, hence there are two version numbers associated with single release: TI release version and Imgtech DDK version. In each release kernel driver sources are provided and precompiled libraries providing OpenGL/OpenVG functionality.&amp;lt;br&amp;gt;&lt;br /&gt;
On pandora, different driver versions can be installed using a pnd from [http://boards.openpandora.org/index.php/topic/12233-sgx-driver-installer-beta/ this page].&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
!TI version&lt;br /&gt;
!SGX DDK version&lt;br /&gt;
!Date&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|3.00.00.08a&lt;br /&gt;
|1.3.13.1607&lt;br /&gt;
|2009-06-30&lt;br /&gt;
|-&lt;br /&gt;
|3.00.00.09&lt;br /&gt;
|1.3.13.1832&lt;br /&gt;
|2009-11-16&lt;br /&gt;
|-&lt;br /&gt;
|3.01.00.02&lt;br /&gt;
|1.4.14.2514&lt;br /&gt;
|2009-11-30&lt;br /&gt;
|-&lt;br /&gt;
|3.01.00.06&lt;br /&gt;
|1.4.14.2616&lt;br /&gt;
|2010-04-06&lt;br /&gt;
|ES5 introduced&lt;br /&gt;
|-&lt;br /&gt;
|3.01.00.07&lt;br /&gt;
|1.4.14.2616&lt;br /&gt;
|2010-08-18&lt;br /&gt;
|-&lt;br /&gt;
|4.00.00.01&lt;br /&gt;
|1.4.14.2616&lt;br /&gt;
|2010-09-09&lt;br /&gt;
|last working ES2&lt;br /&gt;
|-&lt;br /&gt;
|4.03.00.01&lt;br /&gt;
|1.6.16.3977&lt;br /&gt;
|2011-01-27&lt;br /&gt;
|-&lt;br /&gt;
|4.03.00.02&lt;br /&gt;
|1.6.16.3977&lt;br /&gt;
|2011-03-10&lt;br /&gt;
|-&lt;br /&gt;
|4.04.00.01&lt;br /&gt;
|1.6.16.4117&lt;br /&gt;
|2011-07-27&lt;br /&gt;
|introduces DRI2 dependency&lt;br /&gt;
|-&lt;br /&gt;
|4.04.00.02&lt;br /&gt;
|1.6.16.4117&lt;br /&gt;
|2011-08-03&lt;br /&gt;
|-&lt;br /&gt;
|4.04.00.03&lt;br /&gt;
|1.6.16.4117&lt;br /&gt;
|2011-08-30&lt;br /&gt;
|-&lt;br /&gt;
|4.04.00.04&lt;br /&gt;
|?&lt;br /&gt;
|2011-09-29&lt;br /&gt;
|internal only (engineering drop) release&lt;br /&gt;
|-&lt;br /&gt;
|4.05.00.01&lt;br /&gt;
|1.6.16.4117&lt;br /&gt;
|2011-10-25&lt;br /&gt;
|4.04 + build fixes, no more ES2 libs&lt;br /&gt;
|-&lt;br /&gt;
|4.05.00.02&lt;br /&gt;
|1.6.16.4117&lt;br /&gt;
|2011-10-27&lt;br /&gt;
|-&lt;br /&gt;
|4.05.00.03&lt;br /&gt;
|1.6.16.4117&lt;br /&gt;
|2011-12-14&lt;br /&gt;
|-&lt;br /&gt;
|4.06.00.01&lt;br /&gt;
|1.7.17.783851&lt;br /&gt;
|2012-04-03&lt;br /&gt;
|-&lt;br /&gt;
|4.06.00.02&lt;br /&gt;
|1.7.17.867897&lt;br /&gt;
|2012-05-30&lt;br /&gt;
|-&lt;br /&gt;
|4.06.00.03&lt;br /&gt;
|1.7.17.867897&lt;br /&gt;
|2012-06-18&lt;br /&gt;
|-&lt;br /&gt;
|4.07.00.01&lt;br /&gt;
|1.7.17.867897&lt;br /&gt;
|2012-09-06&lt;br /&gt;
|missing libs&lt;br /&gt;
|-&lt;br /&gt;
|4.08.00.01&lt;br /&gt;
|1.9.19.2139099&lt;br /&gt;
|2012-09-28&lt;br /&gt;
|&amp;quot;tested on AM parts only&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|4.08.00.02&lt;br /&gt;
|1.9.19.2188537&lt;br /&gt;
|2012-12-10&lt;br /&gt;
|&amp;quot;tested on AM parts only&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Android releases'''&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
!TI version&lt;br /&gt;
!SGX DDK version&lt;br /&gt;
|-&lt;br /&gt;
|3.01.00.03&lt;br /&gt;
|1.5.15.2766&lt;br /&gt;
|-&lt;br /&gt;
|4.03.00.01&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|4.03.01.00&lt;br /&gt;
|?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Library variants==&lt;br /&gt;
Each TI release comes with different set of libraries for different SGX chip revisions. TI SGX drivers use weird naming of SGX chip versions which is inconsistent with OMAP chip revision or SGX chip revision names. As various pandora versions use different OMAP chip versions, this may become rather confusing, so hopefully this table can help.&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
!SoC name&lt;br /&gt;
!SoC version&lt;br /&gt;
!SGX core revision&lt;br /&gt;
!TI diver name&lt;br /&gt;
!Pandora name&lt;br /&gt;
|-&lt;br /&gt;
|OMAP3530&lt;br /&gt;
|ES2.1&lt;br /&gt;
|1.0.3&lt;br /&gt;
|ES2.0&lt;br /&gt;
|CC/256M&lt;br /&gt;
|-&lt;br /&gt;
|OMAP3530&lt;br /&gt;
|ES3.1&lt;br /&gt;
|1.2.1&lt;br /&gt;
|ES3.0&lt;br /&gt;
|Rebirth&lt;br /&gt;
|-&lt;br /&gt;
|DM3730&lt;br /&gt;
|ES1.x&lt;br /&gt;
|1.2.5&lt;br /&gt;
|ES5.0&lt;br /&gt;
|1GHz&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Developer info==&lt;br /&gt;
===Driver operation modes===&lt;br /&gt;
The drivers seem to have 2 modes of operation - &amp;quot;framebuffer mode&amp;quot; and &amp;quot;X mode&amp;quot;. Framebuffer mode appears to be noticeably faster in some cases, presumably because in X mode the driver is rendering to offscreen buffer and then manually blitting to X window, even if it's fullscreen. Also at the time of this writing, drivers starting from 4.04.00.01 only work in framebuffer mode due to some unsolved DRI2 issues.&lt;br /&gt;
&lt;br /&gt;
The mode is selected depending on how EGL is initialized, if you use EGL_DEFAULT_DISPLAY for eglGetDisplay() and NULL window for eglCreateWindowSurface(), you get framebuffer mode, else if you pass real display and window handles to those functions, you'll get X mode. Note that in framebuffer mode the driver will fight with X for display, so you need to create fullscreen window to stop X from redrawing (SDL can be used for that).&lt;br /&gt;
&lt;br /&gt;
===Double buffering in GL===&lt;br /&gt;
It is unclear when the driver decides to use double buffering, sometimes it does, sometimes it doesn't (the later is more usual), so there is often tearing visible. It is possible to force the driver to use double buffering with by using a file named powervr.ini with this content:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
WindowSystem=libpvrPVR2D_FLIPWSEGL.so&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The driver is looking for this file in current working directory first, and then in /etc/ .&lt;br /&gt;
&lt;br /&gt;
==Useful links==&lt;br /&gt;
[http://processors.wiki.ti.com/index.php/OMAP35x_Graphics_SDK_Release_Notes_Archive TI release notes]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/index.html TI release downloads]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=SGX_drivers&amp;diff=27103</id>
		<title>SGX drivers</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=SGX_drivers&amp;diff=27103"/>
		<updated>2013-04-17T21:26:25Z</updated>

		<summary type="html">&lt;p&gt;Notaz: link back to the forum&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Releases==&lt;br /&gt;
TI has released several SGX driver versions over time, that are based on Imagination Technologies SGX DDK for Linux, hence there are two version numbers associated with single release: TI release version and Imgtech DDK version. In each release kernel driver sources are provided and precompiled libraries providing OpenGL/OpenVG functionality.&amp;lt;br&amp;gt;&lt;br /&gt;
On pandora, different driver versions can be installed using [http://boards.openpandora.org/index.php/topic/12233-sgx-driver-installer-beta/ a pnd from this page].&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
!TI version&lt;br /&gt;
!SGX DDK version&lt;br /&gt;
!Date&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|3.00.00.08a&lt;br /&gt;
|1.3.13.1607&lt;br /&gt;
|2009-06-30&lt;br /&gt;
|-&lt;br /&gt;
|3.00.00.09&lt;br /&gt;
|1.3.13.1832&lt;br /&gt;
|2009-11-16&lt;br /&gt;
|-&lt;br /&gt;
|3.01.00.02&lt;br /&gt;
|1.4.14.2514&lt;br /&gt;
|2009-11-30&lt;br /&gt;
|-&lt;br /&gt;
|3.01.00.06&lt;br /&gt;
|1.4.14.2616&lt;br /&gt;
|2010-04-06&lt;br /&gt;
|ES5 introduced&lt;br /&gt;
|-&lt;br /&gt;
|3.01.00.07&lt;br /&gt;
|1.4.14.2616&lt;br /&gt;
|2010-08-18&lt;br /&gt;
|-&lt;br /&gt;
|4.00.00.01&lt;br /&gt;
|1.4.14.2616&lt;br /&gt;
|2010-09-09&lt;br /&gt;
|last working ES2&lt;br /&gt;
|-&lt;br /&gt;
|4.03.00.01&lt;br /&gt;
|1.6.16.3977&lt;br /&gt;
|2011-01-27&lt;br /&gt;
|-&lt;br /&gt;
|4.03.00.02&lt;br /&gt;
|1.6.16.3977&lt;br /&gt;
|2011-03-10&lt;br /&gt;
|-&lt;br /&gt;
|4.04.00.01&lt;br /&gt;
|1.6.16.4117&lt;br /&gt;
|2011-07-27&lt;br /&gt;
|introduces DRI2 dependency&lt;br /&gt;
|-&lt;br /&gt;
|4.04.00.02&lt;br /&gt;
|1.6.16.4117&lt;br /&gt;
|2011-08-03&lt;br /&gt;
|-&lt;br /&gt;
|4.04.00.03&lt;br /&gt;
|1.6.16.4117&lt;br /&gt;
|2011-08-30&lt;br /&gt;
|-&lt;br /&gt;
|4.04.00.04&lt;br /&gt;
|?&lt;br /&gt;
|2011-09-29&lt;br /&gt;
|internal only (engineering drop) release&lt;br /&gt;
|-&lt;br /&gt;
|4.05.00.01&lt;br /&gt;
|1.6.16.4117&lt;br /&gt;
|2011-10-25&lt;br /&gt;
|4.04 + build fixes, no more ES2 libs&lt;br /&gt;
|-&lt;br /&gt;
|4.05.00.02&lt;br /&gt;
|1.6.16.4117&lt;br /&gt;
|2011-10-27&lt;br /&gt;
|-&lt;br /&gt;
|4.05.00.03&lt;br /&gt;
|1.6.16.4117&lt;br /&gt;
|2011-12-14&lt;br /&gt;
|-&lt;br /&gt;
|4.06.00.01&lt;br /&gt;
|1.7.17.783851&lt;br /&gt;
|2012-04-03&lt;br /&gt;
|-&lt;br /&gt;
|4.06.00.02&lt;br /&gt;
|1.7.17.867897&lt;br /&gt;
|2012-05-30&lt;br /&gt;
|-&lt;br /&gt;
|4.06.00.03&lt;br /&gt;
|1.7.17.867897&lt;br /&gt;
|2012-06-18&lt;br /&gt;
|-&lt;br /&gt;
|4.07.00.01&lt;br /&gt;
|1.7.17.867897&lt;br /&gt;
|2012-09-06&lt;br /&gt;
|missing libs&lt;br /&gt;
|-&lt;br /&gt;
|4.08.00.01&lt;br /&gt;
|1.9.19.2139099&lt;br /&gt;
|2012-09-28&lt;br /&gt;
|&amp;quot;tested on AM parts only&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|4.08.00.02&lt;br /&gt;
|1.9.19.2188537&lt;br /&gt;
|2012-12-10&lt;br /&gt;
|&amp;quot;tested on AM parts only&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Android releases'''&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
!TI version&lt;br /&gt;
!SGX DDK version&lt;br /&gt;
|-&lt;br /&gt;
|3.01.00.03&lt;br /&gt;
|1.5.15.2766&lt;br /&gt;
|-&lt;br /&gt;
|4.03.00.01&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|4.03.01.00&lt;br /&gt;
|?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Library variants==&lt;br /&gt;
Each TI release comes with different set of libraries for different SGX chip revisions. TI SGX drivers use weird naming of SGX chip versions which is inconsistent with OMAP chip revision or SGX chip revision names. As various pandora versions use different OMAP chip versions, this may become rather confusing, so hopefully this table can help.&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
!SoC name&lt;br /&gt;
!SoC version&lt;br /&gt;
!SGX core revision&lt;br /&gt;
!TI diver name&lt;br /&gt;
!Pandora name&lt;br /&gt;
|-&lt;br /&gt;
|OMAP3530&lt;br /&gt;
|ES2.1&lt;br /&gt;
|1.0.3&lt;br /&gt;
|ES2.0&lt;br /&gt;
|CC/256M&lt;br /&gt;
|-&lt;br /&gt;
|OMAP3530&lt;br /&gt;
|ES3.1&lt;br /&gt;
|1.2.1&lt;br /&gt;
|ES3.0&lt;br /&gt;
|Rebirth&lt;br /&gt;
|-&lt;br /&gt;
|DM3730&lt;br /&gt;
|ES1.x&lt;br /&gt;
|1.2.5&lt;br /&gt;
|ES5.0&lt;br /&gt;
|1GHz&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Developer info==&lt;br /&gt;
===Driver operation modes===&lt;br /&gt;
The drivers seem to have 2 modes of operation - &amp;quot;framebuffer mode&amp;quot; and &amp;quot;X mode&amp;quot;. Framebuffer mode appears to be noticeably faster in some cases, presumably because in X mode the driver is rendering to offscreen buffer and then manually blitting to X window, even if it's fullscreen. Also at the time of this writing, drivers starting from 4.04.00.01 only work in framebuffer mode due to some unsolved DRI2 issues.&lt;br /&gt;
&lt;br /&gt;
The mode is selected depending on how EGL is initialized, if you use EGL_DEFAULT_DISPLAY for eglGetDisplay() and NULL window for eglCreateWindowSurface(), you get framebuffer mode, else if you pass real display and window handles to those functions, you'll get X mode. Note that in framebuffer mode the driver will fight with X for display, so you need to create fullscreen window to stop X from redrawing (SDL can be used for that).&lt;br /&gt;
&lt;br /&gt;
===Double buffering in GL===&lt;br /&gt;
It is unclear when the driver decides to use double buffering, sometimes it does, sometimes it doesn't (the later is more usual), so there is often tearing visible. It is possible to force the driver to use double buffering with by using a file named powervr.ini with this content:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
WindowSystem=libpvrPVR2D_FLIPWSEGL.so&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The driver is looking for this file in current working directory first, and then in /etc/ .&lt;br /&gt;
&lt;br /&gt;
==Useful links==&lt;br /&gt;
[http://processors.wiki.ti.com/index.php/OMAP35x_Graphics_SDK_Release_Notes_Archive TI release notes]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/index.html TI release downloads]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Hardware_documentation&amp;diff=27075</id>
		<title>Hardware documentation</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Hardware_documentation&amp;diff=27075"/>
		<updated>2013-03-26T17:05:40Z</updated>

		<summary type="html">&lt;p&gt;Notaz: /* PowerVR */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{introNote|For adding custom extensions see [[Hardware hacking]]}}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
* Official Hackers Manual ([http://www.openpandora.org/downloads/PANDORA_Hackers_manual_v101.pdf v1.01]) from OpenPandora Ltd, includes warnings about damage and warranties (or loss of).&lt;br /&gt;
&lt;br /&gt;
==Board==&lt;br /&gt;
[[image:Board_rev5.jpg|thumb|Pandora PCB rev 5]]&lt;br /&gt;
The Pandora is based upon a OMAP3530 System-on-a-chip, that includes a whole family of processors in one single chip:&lt;br /&gt;
*[[ARM]] Cortex-A8 CPU&lt;br /&gt;
*PowerVR SGX graphics core&lt;br /&gt;
*C64x+ DSP core&lt;br /&gt;
&lt;br /&gt;
===OMAP3530===&lt;br /&gt;
&lt;br /&gt;
* OMAP35x: Main page on TI site[http://focus.ti.com/general/docs/gencontent.tsp?contentId=36915]&lt;br /&gt;
&lt;br /&gt;
* OMAP3530 specific page[http://focus.ti.com/docs/prod/folders/print/omap3530.html]  ''This lists the features of the chip and has all the applicable Technical Documents''&lt;br /&gt;
&lt;br /&gt;
* [http://focus.ti.com/pdfs/wtbu/ti_omap3430.pdf speficiations]&lt;br /&gt;
&lt;br /&gt;
====Other OMAP3530 Projects====&lt;br /&gt;
*Always Innovating Touch&amp;amp;nbsp;Book[http://www.alwaysinnovating.com/wiki/]&lt;br /&gt;
*Beagle Board Resources[http://beagleboard.org/resources] As it uses the same SoC, many BB resources are also relevant for the Pandora.&lt;br /&gt;
*Beagle Board Google Group[http://groups.google.com/group/beagleboard]&lt;br /&gt;
&lt;br /&gt;
====Cortex-A8====&lt;br /&gt;
This processor is part of the [[ARM]] risc cpu family[http://www.arm.com/products/processors/cortex-a/cortex-a8.php] that is licensed by a lot of hardware vendors. It has multiple command extensions as [[NEON]] (similar to MMX for x86 architecture)&lt;br /&gt;
*r1p1[http://infocenter.arm.com/help/topic/com.arm.doc.ddi0344b/DDI0344.pdf]  ''Note: OMAP3530 uses rev1p2''&lt;br /&gt;
*'''UPDATE''': r2p2 Documentation [http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0344e/index.html]  ''Note: OMAP3530 uses rev1p2''&lt;br /&gt;
*NEON instruction set [http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0204h/Bcfjicfj.html]&lt;br /&gt;
*NEON memory hazards[http://hardwarebug.org/2008/12/31/arm-neon-memory-hazards/]&lt;br /&gt;
&lt;br /&gt;
==== PowerVR ====&lt;br /&gt;
&lt;br /&gt;
* [http://khronos.org/opengles/2_X/ Official site]&lt;br /&gt;
** OpenGL ES 2.0, several million polygons per second.&lt;br /&gt;
** [[OpenGL ES 1.1 Tutorial]]&lt;br /&gt;
** [[SGX_drivers|SGX driver info]]&lt;br /&gt;
&lt;br /&gt;
====C64x+====&lt;br /&gt;
Digital signal processors allow to do complex calculations within only a few cycles&lt;br /&gt;
*CPU and Instruction Set Reference Guide[http://focus.ti.com/lit/ug/spru732h/spru732h.pdf]&lt;br /&gt;
*TMS320C6000 Assembly Language Tools v 6.0 Beta User's Guide[http://focus.ti.com/dsp/docs/dspsupporttechdocsc.tsp?sectionId=3&amp;amp;tabId=409&amp;amp;abstractName=spru186p]&lt;br /&gt;
*TMS320C6000 Optimizing Compiler v 6.0 Beta User's Guide[http://focus.ti.com/dsp/docs/dspsupporttechdocsc.tsp?sectionId=3&amp;amp;tabId=409&amp;amp;familyId=44&amp;amp;abstractName=spru187n]&lt;br /&gt;
*TMS320C6000 Programmer's Guide[http://focus.ti.com/dsp/docs/dspsupporttechdocsc.tsp?sectionId=3&amp;amp;tabId=409&amp;amp;abstractName=spru198i]&lt;br /&gt;
&lt;br /&gt;
===TPS65950 power IC===&lt;br /&gt;
*Main page on TI site[http://focus.ti.com/docs/prod/folders/print/tps65950.html]&lt;br /&gt;
&lt;br /&gt;
==Display==&lt;br /&gt;
*Screen datasheet (TD043MTEA1)[http://beyondinfinite.com/lcd/Library/Toppoly/TD043MTEA1.pdf] The Pandora uses the display from the Archos 605 Media Player. However, on the Archos LCD the pinout is reversed as well as the cable having a 45 degree angle which would make it fail to line up with the Pandora LCD cable in the lid. --[http://boards.openpandora.org/index.php?/topic/3114-replacement-lcds/page__p__53657#entry53657]&lt;br /&gt;
&lt;br /&gt;
==Status LEDs==&lt;br /&gt;
&lt;br /&gt;
Meaning of the LEDs from left to right according to [http://boards.openpandora.org/index.php?/topic/325-led-function-documented/page__view__findpost__p__5726 gfrancisdev].&lt;br /&gt;
&lt;br /&gt;
Left LED group&lt;br /&gt;
* SD card 1&lt;br /&gt;
* SD card 2&lt;br /&gt;
* Wifi&lt;br /&gt;
* Bluetooth&lt;br /&gt;
&lt;br /&gt;
Right LED group&lt;br /&gt;
* Empty (with solder pad for hardware hackers who want to use an additional LED)&lt;br /&gt;
* Empty (-&amp;quot;-)&lt;br /&gt;
* Charging&lt;br /&gt;
* Power&lt;br /&gt;
&lt;br /&gt;
==Input==&lt;br /&gt;
===Keyboard===&lt;br /&gt;
[[image:Keypadmatrix.png|thumb|Keyboard Matrix Diagram (Courtesy of Neelix)]]&lt;br /&gt;
&lt;br /&gt;
* The keyboard is listed on p.20 of the hackers manual, and a more readable version is shown here.&lt;br /&gt;
===Touchscreen===&lt;br /&gt;
*TSC2046: ADS7846 compatible touch screen controller[http://focus.ti.com/docs/prod/folders/print/tsc2046.html]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[[Nubs]]&lt;br /&gt;
*[[Purple Tint of Death]] (due to LCD cables)&lt;br /&gt;
*[[Hardware Hacking]] EXT Connectors and other info&lt;br /&gt;
&lt;br /&gt;
[[Category:Chipset]]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=SGX_drivers&amp;diff=27074</id>
		<title>SGX drivers</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=SGX_drivers&amp;diff=27074"/>
		<updated>2013-03-26T16:48:20Z</updated>

		<summary type="html">&lt;p&gt;Notaz: dev info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Releases==&lt;br /&gt;
TI has released several SGX driver versions over time, that are based on Imagination Technologies SGX DDK for Linux, hence there are two version numbers associated with single release: TI release version and Imgtech DDK version. In each release kernel driver sources are provided and precompiled libraries providing OpenGL/OpenVG functionality.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
!TI version&lt;br /&gt;
!SGX DDK version&lt;br /&gt;
!Date&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|3.00.00.08a&lt;br /&gt;
|1.3.13.1607&lt;br /&gt;
|2009-06-30&lt;br /&gt;
|-&lt;br /&gt;
|3.00.00.09&lt;br /&gt;
|1.3.13.1832&lt;br /&gt;
|2009-11-16&lt;br /&gt;
|-&lt;br /&gt;
|3.01.00.02&lt;br /&gt;
|1.4.14.2514&lt;br /&gt;
|2009-11-30&lt;br /&gt;
|-&lt;br /&gt;
|3.01.00.06&lt;br /&gt;
|1.4.14.2616&lt;br /&gt;
|2010-04-06&lt;br /&gt;
|ES5 introduced&lt;br /&gt;
|-&lt;br /&gt;
|3.01.00.07&lt;br /&gt;
|1.4.14.2616&lt;br /&gt;
|2010-08-18&lt;br /&gt;
|-&lt;br /&gt;
|4.00.00.01&lt;br /&gt;
|1.4.14.2616&lt;br /&gt;
|2010-09-09&lt;br /&gt;
|last working ES2&lt;br /&gt;
|-&lt;br /&gt;
|4.03.00.01&lt;br /&gt;
|1.6.16.3977&lt;br /&gt;
|2011-01-27&lt;br /&gt;
|-&lt;br /&gt;
|4.03.00.02&lt;br /&gt;
|1.6.16.3977&lt;br /&gt;
|2011-03-10&lt;br /&gt;
|-&lt;br /&gt;
|4.04.00.01&lt;br /&gt;
|1.6.16.4117&lt;br /&gt;
|2011-07-27&lt;br /&gt;
|introduces DRI2 dependency&lt;br /&gt;
|-&lt;br /&gt;
|4.04.00.02&lt;br /&gt;
|1.6.16.4117&lt;br /&gt;
|2011-08-03&lt;br /&gt;
|-&lt;br /&gt;
|4.04.00.03&lt;br /&gt;
|1.6.16.4117&lt;br /&gt;
|2011-08-30&lt;br /&gt;
|-&lt;br /&gt;
|4.04.00.04&lt;br /&gt;
|?&lt;br /&gt;
|2011-09-29&lt;br /&gt;
|internal only (engineering drop) release&lt;br /&gt;
|-&lt;br /&gt;
|4.05.00.01&lt;br /&gt;
|1.6.16.4117&lt;br /&gt;
|2011-10-25&lt;br /&gt;
|4.04 + build fixes, no more ES2 libs&lt;br /&gt;
|-&lt;br /&gt;
|4.05.00.02&lt;br /&gt;
|1.6.16.4117&lt;br /&gt;
|2011-10-27&lt;br /&gt;
|-&lt;br /&gt;
|4.05.00.03&lt;br /&gt;
|1.6.16.4117&lt;br /&gt;
|2011-12-14&lt;br /&gt;
|-&lt;br /&gt;
|4.06.00.01&lt;br /&gt;
|1.7.17.783851&lt;br /&gt;
|2012-04-03&lt;br /&gt;
|-&lt;br /&gt;
|4.06.00.02&lt;br /&gt;
|1.7.17.867897&lt;br /&gt;
|2012-05-30&lt;br /&gt;
|-&lt;br /&gt;
|4.06.00.03&lt;br /&gt;
|1.7.17.867897&lt;br /&gt;
|2012-06-18&lt;br /&gt;
|-&lt;br /&gt;
|4.07.00.01&lt;br /&gt;
|1.7.17.867897&lt;br /&gt;
|2012-09-06&lt;br /&gt;
|missing libs&lt;br /&gt;
|-&lt;br /&gt;
|4.08.00.01&lt;br /&gt;
|1.9.19.2139099&lt;br /&gt;
|2012-09-28&lt;br /&gt;
|&amp;quot;tested on AM parts only&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|4.08.00.02&lt;br /&gt;
|1.9.19.2188537&lt;br /&gt;
|2012-12-10&lt;br /&gt;
|&amp;quot;tested on AM parts only&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Android releases'''&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
!TI version&lt;br /&gt;
!SGX DDK version&lt;br /&gt;
|-&lt;br /&gt;
|3.01.00.03&lt;br /&gt;
|1.5.15.2766&lt;br /&gt;
|-&lt;br /&gt;
|4.03.00.01&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|4.03.01.00&lt;br /&gt;
|?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Library variants==&lt;br /&gt;
Each TI release comes with different set of libraries for different SGX chip revisions. TI SGX drivers use weird naming of SGX chip versions which is inconsistent with OMAP chip revision or SGX chip revision names. As various pandora versions use different OMAP chip versions, this may become rather confusing, so hopefully this table can help.&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
!SoC name&lt;br /&gt;
!SoC version&lt;br /&gt;
!SGX core revision&lt;br /&gt;
!TI diver name&lt;br /&gt;
!Pandora name&lt;br /&gt;
|-&lt;br /&gt;
|OMAP3530&lt;br /&gt;
|ES2.1&lt;br /&gt;
|1.0.3&lt;br /&gt;
|ES2.0&lt;br /&gt;
|CC/256M&lt;br /&gt;
|-&lt;br /&gt;
|OMAP3530&lt;br /&gt;
|ES3.1&lt;br /&gt;
|1.2.1&lt;br /&gt;
|ES3.0&lt;br /&gt;
|Rebirth&lt;br /&gt;
|-&lt;br /&gt;
|DM3730&lt;br /&gt;
|ES1.x&lt;br /&gt;
|1.2.5&lt;br /&gt;
|ES5.0&lt;br /&gt;
|1GHz&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Developer info==&lt;br /&gt;
===Driver operation modes===&lt;br /&gt;
The drivers seem to have 2 modes of operation - &amp;quot;framebuffer mode&amp;quot; and &amp;quot;X mode&amp;quot;. Framebuffer mode appears to be noticeably faster in some cases, presumably because in X mode the driver is rendering to offscreen buffer and then manually blitting to X window, even if it's fullscreen. Also at the time of this writing, drivers starting from 4.04.00.01 only work in framebuffer mode due to some unsolved DRI2 issues.&lt;br /&gt;
&lt;br /&gt;
The mode is selected depending on how EGL is initialized, if you use EGL_DEFAULT_DISPLAY for eglGetDisplay() and NULL window for eglCreateWindowSurface(), you get framebuffer mode, else if you pass real display and window handles to those functions, you'll get X mode. Note that in framebuffer mode the driver will fight with X for display, so you need to create fullscreen window to stop X from redrawing (SDL can be used for that).&lt;br /&gt;
&lt;br /&gt;
===Double buffering in GL===&lt;br /&gt;
It is unclear when the driver decides to use double buffering, sometimes it does, sometimes it doesn't (the later is more usual), so there is often tearing visible. It is possible to force the driver to use double buffering with by using a file named powervr.ini with this content:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
WindowSystem=libpvrPVR2D_FLIPWSEGL.so&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The driver is looking for this file in current working directory first, and then in /etc/ .&lt;br /&gt;
&lt;br /&gt;
==Useful links==&lt;br /&gt;
[http://processors.wiki.ti.com/index.php/OMAP35x_Graphics_SDK_Release_Notes_Archive TI release notes]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/index.html TI release downloads]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=SGX_drivers&amp;diff=26694</id>
		<title>SGX drivers</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=SGX_drivers&amp;diff=26694"/>
		<updated>2013-02-18T12:44:38Z</updated>

		<summary type="html">&lt;p&gt;Notaz: /* Useful links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Releases==&lt;br /&gt;
TI has released several SGX driver versions over time, that are based on Imagination Technologies SGX DDK for Linux, hence there are two version numbers associated with single release: TI release version and Imgtech DDK version. In each release kernel driver sources are provided and precompiled libraries providing OpenGL/OpenVG functionality.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
!TI version&lt;br /&gt;
!SGX DDK version&lt;br /&gt;
!Date&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|3.00.00.08a&lt;br /&gt;
|1.3.13.1607&lt;br /&gt;
|2009-06-30&lt;br /&gt;
|-&lt;br /&gt;
|3.00.00.09&lt;br /&gt;
|1.3.13.1832&lt;br /&gt;
|2009-11-16&lt;br /&gt;
|-&lt;br /&gt;
|3.01.00.02&lt;br /&gt;
|1.4.14.2514&lt;br /&gt;
|2009-11-30&lt;br /&gt;
|-&lt;br /&gt;
|3.01.00.06&lt;br /&gt;
|1.4.14.2616&lt;br /&gt;
|2010-04-06&lt;br /&gt;
|ES5 introduced&lt;br /&gt;
|-&lt;br /&gt;
|3.01.00.07&lt;br /&gt;
|1.4.14.2616&lt;br /&gt;
|2010-08-18&lt;br /&gt;
|-&lt;br /&gt;
|4.00.00.01&lt;br /&gt;
|1.4.14.2616&lt;br /&gt;
|2010-09-09&lt;br /&gt;
|last working ES2&lt;br /&gt;
|-&lt;br /&gt;
|4.03.00.01&lt;br /&gt;
|1.6.16.3977&lt;br /&gt;
|2011-01-27&lt;br /&gt;
|-&lt;br /&gt;
|4.03.00.02&lt;br /&gt;
|1.6.16.3977&lt;br /&gt;
|2011-03-10&lt;br /&gt;
|-&lt;br /&gt;
|4.04.00.01&lt;br /&gt;
|1.6.16.4117&lt;br /&gt;
|2011-07-27&lt;br /&gt;
|introduces DRI2 dependency&lt;br /&gt;
|-&lt;br /&gt;
|4.04.00.02&lt;br /&gt;
|1.6.16.4117&lt;br /&gt;
|2011-08-03&lt;br /&gt;
|-&lt;br /&gt;
|4.04.00.03&lt;br /&gt;
|1.6.16.4117&lt;br /&gt;
|2011-08-30&lt;br /&gt;
|-&lt;br /&gt;
|4.04.00.04&lt;br /&gt;
|?&lt;br /&gt;
|2011-09-29&lt;br /&gt;
|internal only (engineering drop) release&lt;br /&gt;
|-&lt;br /&gt;
|4.05.00.01&lt;br /&gt;
|1.6.16.4117&lt;br /&gt;
|2011-10-25&lt;br /&gt;
|4.04 + build fixes, no more ES2 libs&lt;br /&gt;
|-&lt;br /&gt;
|4.05.00.02&lt;br /&gt;
|1.6.16.4117&lt;br /&gt;
|2011-10-27&lt;br /&gt;
|-&lt;br /&gt;
|4.05.00.03&lt;br /&gt;
|1.6.16.4117&lt;br /&gt;
|2011-12-14&lt;br /&gt;
|-&lt;br /&gt;
|4.06.00.01&lt;br /&gt;
|1.7.17.783851&lt;br /&gt;
|2012-04-03&lt;br /&gt;
|-&lt;br /&gt;
|4.06.00.02&lt;br /&gt;
|1.7.17.867897&lt;br /&gt;
|2012-05-30&lt;br /&gt;
|-&lt;br /&gt;
|4.06.00.03&lt;br /&gt;
|1.7.17.867897&lt;br /&gt;
|2012-06-18&lt;br /&gt;
|-&lt;br /&gt;
|4.07.00.01&lt;br /&gt;
|1.7.17.867897&lt;br /&gt;
|2012-09-06&lt;br /&gt;
|missing libs&lt;br /&gt;
|-&lt;br /&gt;
|4.08.00.01&lt;br /&gt;
|1.9.19.2139099&lt;br /&gt;
|2012-09-28&lt;br /&gt;
|&amp;quot;tested on AM parts only&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|4.08.00.02&lt;br /&gt;
|1.9.19.2188537&lt;br /&gt;
|2012-12-10&lt;br /&gt;
|&amp;quot;tested on AM parts only&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Android releases'''&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
!TI version&lt;br /&gt;
!SGX DDK version&lt;br /&gt;
|-&lt;br /&gt;
|3.01.00.03&lt;br /&gt;
|1.5.15.2766&lt;br /&gt;
|-&lt;br /&gt;
|4.03.00.01&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|4.03.01.00&lt;br /&gt;
|?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Library variants==&lt;br /&gt;
Each TI release comes with different set of libraries for different SGX chip revisions. TI SGX drivers use weird naming of SGX chip versions which is inconsistent with OMAP chip revision or SGX chip revision names. As various pandora versions use different OMAP chip versions, this may become rather confusing, so hopefully this table can help.&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
!SoC name&lt;br /&gt;
!SoC version&lt;br /&gt;
!SGX core revision&lt;br /&gt;
!TI diver name&lt;br /&gt;
!Pandora name&lt;br /&gt;
|-&lt;br /&gt;
|OMAP3530&lt;br /&gt;
|ES2.1&lt;br /&gt;
|1.0.3&lt;br /&gt;
|ES2.0&lt;br /&gt;
|CC/256M&lt;br /&gt;
|-&lt;br /&gt;
|OMAP3530&lt;br /&gt;
|ES3.1&lt;br /&gt;
|1.2.1&lt;br /&gt;
|ES3.0&lt;br /&gt;
|Rebirth&lt;br /&gt;
|-&lt;br /&gt;
|DM3730&lt;br /&gt;
|ES1.x&lt;br /&gt;
|1.2.5&lt;br /&gt;
|ES5.0&lt;br /&gt;
|1GHz&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Useful links==&lt;br /&gt;
[http://processors.wiki.ti.com/index.php/OMAP35x_Graphics_SDK_Release_Notes_Archive TI release notes]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/index.html TI release downloads]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Kernel_interface&amp;diff=26578</id>
		<title>Kernel interface</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Kernel_interface&amp;diff=26578"/>
		<updated>2013-02-17T00:38:25Z</updated>

		<summary type="html">&lt;p&gt;Notaz: use &amp;quot;sane&amp;quot; permissions in an example&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{hint|For apps use higher level libraries/interfaces like SDL, Qt, X or similar for your own good (portability). It may be impossible to retain this layout on some major hardware revision, let's say Pandora 3000, and your program will break. Also this requires some level of Linux programming knowledge.}}&lt;br /&gt;
&lt;br /&gt;
In case you need to write low level code (you can't/don't want to use high level libs like [[SDL]]), you can use [[kernel]] interface. This is the recommended way to access [[hardware]] (as opposed to [[GP2X]] style of accessing chip registers by mmap'ing /dev/mem), because in case hardware changes are needed in future, they could be handled by kernel and all programs would still work. It also should allow several programs to work at the same time and should be more stable.&lt;br /&gt;
&lt;br /&gt;
==Input==&lt;br /&gt;
[[Buttons]], [[keypad]], [[touchscreen]] and [[nubs]] are all exposed through Linux event interface (EVDEV). All devices are represented by '''/dev/input/eventX''' files, which can be opened, read and queried (using ioctl calls). The reads can be synchronous (the read will only return when user does something, like presses the button), or asynchronous (the system will report what changed since the last time you asked).&lt;br /&gt;
&lt;br /&gt;
{{warning&lt;br /&gt;
|Don't hardcode device filenames in your program!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
For example, currently /dev/input/event2 represents game buttons, but in future it may become touchscreen. Scan input device names instead, example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
for (i = 0; 1; i++)&lt;br /&gt;
{&lt;br /&gt;
  sprintf(name, &amp;quot;/dev/input/event%i&amp;quot;, i);&lt;br /&gt;
  fd = open(name, O_RDONLY);&lt;br /&gt;
  if (fd &amp;lt; 0) break; /* no more devices */&lt;br /&gt;
  ioctl(fd, EVIOCGNAME(sizeof(name)), name);&lt;br /&gt;
  if (strcmp(name, &amp;quot;gpio-keys&amp;quot;) == 0)&lt;br /&gt;
    return fd; /* found the buttons! */&lt;br /&gt;
  close(fd); /* we don't need this device */&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
List of device names and events they send:&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!name&lt;br /&gt;
!description&lt;br /&gt;
!event.type&lt;br /&gt;
!event.code&lt;br /&gt;
!event.value&lt;br /&gt;
|-&lt;br /&gt;
|keypad&lt;br /&gt;
|keypad&lt;br /&gt;
|EV_KEY&lt;br /&gt;
|KEY_0...KEY_Z, KEY_BACKSPACE, KEY_LEFTSHIFT, KEY_SPACE, KEY_ENTER, KEY_COMMA, KEY_DOT, KEY_FN&lt;br /&gt;
|0 - released&amp;lt;br&amp;gt; 1 - pressed&amp;lt;br&amp;gt; 2 - autorepeat event&lt;br /&gt;
|-&lt;br /&gt;
|gpio-keys&lt;br /&gt;
|game buttons&lt;br /&gt;
|EV_KEY&lt;br /&gt;
|KEY_UP, KEY_DOWN, KEY_LEFT, KEY_RIGHT, KEY_MENU (Pandora button), KEY_LEFTALT (Start), KEY_LEFTCTRL (Select), KEY_PAGEUP (Y/North), KEY_HOME (A/East), KEY_PAGEDOWN (X/South), KEY_END (B/West), KEY_RIGHTSHIFT (Shoulder L), KEY_RIGHTCTRL (Shoulder R), KEY_KPPLUS (Shoulder L2), KEY_KPMINUS (Shoulder R2), KEY_COFFEE (Hold)&lt;br /&gt;
|0 - released&amp;lt;br&amp;gt; 1 - pressed&lt;br /&gt;
|-&lt;br /&gt;
|gpio-keys&lt;br /&gt;
|lid state&lt;br /&gt;
|EV_SW&lt;br /&gt;
|SW_LID&lt;br /&gt;
|0 - closing&amp;lt;br&amp;gt; 1 - opening&lt;br /&gt;
|-&lt;br /&gt;
|touchscreen&lt;br /&gt;
|touchscreen&lt;br /&gt;
|EV_ABS&lt;br /&gt;
|ABS_X, ABS_Y, ABS_PRESSURE&lt;br /&gt;
|varies, use calibration data&lt;br /&gt;
|-&lt;br /&gt;
|nub0&lt;br /&gt;
|left nub&lt;br /&gt;
|EV_ABS&lt;br /&gt;
|ABS_X, ABS_Y&lt;br /&gt;
| -256 (Left/Up)&amp;lt;br&amp;gt;0&amp;lt;br&amp;gt;+256 (Right/Down)&lt;br /&gt;
|-&lt;br /&gt;
|nub1&lt;br /&gt;
|right nub&lt;br /&gt;
|EV_ABS&lt;br /&gt;
|ABS_X, ABS_Y&lt;br /&gt;
| -256 (Left/Up))&amp;lt;br&amp;gt;0&amp;lt;br&amp;gt;+256 (Right/Down)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Sample code:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://beagleboard.googlecode.com/files/evtest.c evtest.c]&lt;br /&gt;
[http://git.openpandora.org/cgi-bin/gitweb.cgi?p=pandora-misc.git;a=blob;f=op_test_inputs.c;hb=HEAD op_test_inputs.c]&lt;br /&gt;
&lt;br /&gt;
===Nubs===&lt;br /&gt;
Nubs have 3 modes that can be switched during runtime: absolute, mouse, mbuttons; this can be done by writing one of those 3 strings to /proc/pandora/nubX/mode . On mode change /dev/input/event* device reenumeration starts and files belonging to nubs are recreated and must be reopened.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Warning:&amp;lt;/strong&amp;gt; it is not guaranteed that input files will finish recreating after a write to /proc/pandora/nubX/mode finishes, it is application's responsibility to wait until those files are available.&lt;br /&gt;
&lt;br /&gt;
To solve the above problem, the OS provides a helper script that will wait for enumeration to complete:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/usr/pandora/scripts/op_nubchange.sh &amp;lt;left_num_mode&amp;gt; &amp;lt;right_nub_mode&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
op_nubchange.sh is not available on HF6 or earlier firmwares, to support them, something like this could be used:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
if [ -e /usr/pandora/scripts/op_nubchange.sh ]; then&lt;br /&gt;
  /usr/pandora/scripts/op_nubchange.sh absolute absolute&lt;br /&gt;
else&lt;br /&gt;
  echo absolute &amp;gt; /proc/pandora/nub0/mode&lt;br /&gt;
  echo absolute &amp;gt; /proc/pandora/nub1/mode&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Touchscreen===&lt;br /&gt;
Event interface returns uncalibrated values directly from driver, so you need to use tslib or manage calibration yourself (using data from /etc/pointercal).&lt;br /&gt;
&lt;br /&gt;
===X11===&lt;br /&gt;
When using the direct kernel api for input, it is also important to stop X processing the events as well. To do this you can create an X window to eat the events. There is also a utility that comes with the Pandora to do this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
op_runfbapp ./yourapp&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
Pandora uses [[ALSA]], but it has [[OSS]] emulation enabled too, so [[GP2X]] code should work.&lt;br /&gt;
&lt;br /&gt;
==Video==&lt;br /&gt;
===Architecture===&lt;br /&gt;
Framebuffer device (/dev/fbX) is supported. There are 3 framebuffers available ('''/dev/fb0''', /dev/fb1 and /dev/fb2), which represent 3 graphics/video layers on [[OMAP3]] by default (but can be reconfigured). Only /dev/fb0 is enabled by default.&lt;br /&gt;
&lt;br /&gt;
[[OMAP3]] display subsystem is controlled by a driver known as [[DSS2]], which has various controls available on /sys/devices/platform/omapdss/ (but they are not meant to be changed by programs, so they are root writable only). The driver exposes 3 layers (called overlays) and 2 displays. Overlays 1 and 2 can perform hardware scaling on the fly using 5-tap poly-phase filter, overlay0 can not. Displays 0 and 1 represent LCD and TV respectively. By default the 3 framebuffers (/dev/fbX) are redirected to 3 overlays, which all output to the LCD. This configuration is not meant to be changed by programs, only firmware should manage these.&lt;br /&gt;
&lt;br /&gt;
===Basic usage===&lt;br /&gt;
====framebuffer interface====&lt;br /&gt;
Framebuffers can be accessed Linux fbdev interface:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
fbdev = open(&amp;quot;/dev/fb0&amp;quot;, O_RDWR);&lt;br /&gt;
buffer = mmap(0, 800*480*2, PROT_READ | PROT_WRITE, MAP_SHARED, fbdev, 0);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
(this is basic example, no error checks)&lt;br /&gt;
&lt;br /&gt;
the returned pointer can be used to draw on the screen.&lt;br /&gt;
&lt;br /&gt;
Be sure to #include &amp;lt;linux/fb.h&amp;gt; to get access to the FB device ioctl interface, and &amp;lt;sys/ioctl.h&amp;gt; for access to ioctl itself.&lt;br /&gt;
&lt;br /&gt;
====double buffering====&lt;br /&gt;
This can be achieved using FBIOPAN_DISPLAY ioctl system call. For this you need to mmap framebuffer of double size&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
buffer1 = mmap(0, 800*480*2 * 2, PROT_WRITE, MAP_SHARED, fbdev, 0);&lt;br /&gt;
buffer2 = (char *)mem + 800*480*2;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then to display buffer2 you would call:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct fb_var_screeninfo fbvar;&lt;br /&gt;
ioctl(fbdev, FBIOGET_VSCREENINFO, &amp;amp;fbvar);&lt;br /&gt;
fbvar.yoffset = 480;&lt;br /&gt;
ioctl(fbdev, FBIOPAN_DISPLAY, &amp;amp;fbvar);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
going back to buffer1 would be repeating above with fbvar.yoffset = 0. Tripple or quad buffering can be implemented using the same technique.&lt;br /&gt;
&lt;br /&gt;
====vertical sync====&lt;br /&gt;
Linux has standard FBIO_WAITFORVSYNC for this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
int arg = 0;&lt;br /&gt;
ioctl(fbdev, FBIO_WAITFORVSYNC, &amp;amp;arg);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
be sure to pass argument value 0 or it will not work.&lt;br /&gt;
&lt;br /&gt;
Some toolchains don't have FBIO_WAITFORVSYNC defined in &amp;lt;linux/fb.h&amp;gt;, in which case you can define it in the following manner:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#ifndef FBIO_WAITFORVSYNC&lt;br /&gt;
  #define FBIO_WAITFORVSYNC _IOW('F', 0x20, __u32)&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====hardware scaling====&lt;br /&gt;
Overlay1 (/dev/fb1) can be used to achieve hardware scaling. Technically overlay2 (fb2) can be used for this too, but it is planned to be used by the system for TV-out functionality, so don't use it. The overlay is configured using series of standard and OMAP specific ioctl calls, but the system ships with some tools to achieve this from scripts too. This way the framebuffer can be set up for some arbitrary size (say 320x240) and can output to LCD as 800x480 with hardware scaling.&lt;br /&gt;
Here is an example script:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ofbset -fb /dev/fb1 -pos 0 0 -size 800 480 -mem 307200 -en 1&lt;br /&gt;
fbset -fb /dev/fb1 -g 320 240 320 480 16&lt;br /&gt;
&lt;br /&gt;
./your_app_here&lt;br /&gt;
&lt;br /&gt;
ofbset -fb /dev/fb1 -pos 0 0 -size 0 0 -mem 0 -en 0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What it does:&lt;br /&gt;
* allocates OMAP DSS layer, asks video output to be 800x480 at position 0,0 (could set it to 640x480 at 80,0 instead to get centered 2x scaling of 320x240). 307200 bytes of video memory are allocated for 2 320x240 16bpp screens (for doublebuffering).&lt;br /&gt;
* sets video mode to 320x240@16bpp, virtual resolution 320x480 for doublebuffering.&lt;br /&gt;
* runs your app&lt;br /&gt;
* cleans the video layer on exit&lt;br /&gt;
&lt;br /&gt;
Now the program can act as if it works with 320x240 16bpp screen.&lt;br /&gt;
&lt;br /&gt;
====LCD refresh rate====&lt;br /&gt;
The OS has a dedicated script which can change the LCD refresh rate. It must be ran with sudo:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
sudo -n /usr/pandora/scripts/op_lcdrate.sh 50&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
From code, system() function can be used for this.&lt;br /&gt;
&lt;br /&gt;
'''Note''': this doesn't mean your program has to run as root to use this (it never should!), just run the script as shown above.&lt;br /&gt;
&lt;br /&gt;
====gamma====&lt;br /&gt;
Since SZ 1.52, gamma can be controlled with another script, the same way as LCD refresh:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
sudo -n /usr/pandora/scripts/op_gamma.sh 1.0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
where 1.0 is the gamma level. If supplied gamma level is 0, then user defaults are used (useful to set on exit). There is also an optional -b N argument (to be specified before gamma value), where N controls black level (0-255, useful to combat LCD ghosting).&lt;br /&gt;
&lt;br /&gt;
===Hardware scaling filter control===&lt;br /&gt;
The hardware scaler in pandora uses poly-phase 5-tap 8-phase filter. It is described in 15.4.2.3.4 and 15.6.1.3 sections of TRM. There are 40 coefficients programmable for both horizontal and vertical resampling (vertical resampling might also use 3 taps/24 coefficients, it depends on available pixel clock).&lt;br /&gt;
====using predefined filters====&lt;br /&gt;
Just run 'sudo /usr/pandora/scripts/op_videofir.sh &amp;lt;name&amp;gt;', where name currently can be:&lt;br /&gt;
* default - the default filter from OMAP manual&lt;br /&gt;
* none - nearest neighbor&lt;br /&gt;
====using custom filters====&lt;br /&gt;
run 'sudo /usr/pandora/scripts/op_videofir.sh &amp;lt;basename&amp;gt;', where basename* files contains coefficient table. The script will look for &amp;lt;basename&amp;gt;_h, &amp;lt;basename&amp;gt;_v3 and &amp;lt;basename&amp;gt;_v5 files for 5-tap horizontal, 3-tap vertical and 5-tap vertical configurations respectively. Pass absolute or relative path for basename with './', like './something'. The coefficients should be in a form of table like described in TRM, for example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
  0   0 128   0   0&lt;br /&gt;
 -1  13 124  -8   0&lt;br /&gt;
 -2  30 112 -11  -1&lt;br /&gt;
 -5  51  95 -11  -2&lt;br /&gt;
  0  -9  73  73  -9&lt;br /&gt;
 -2 -11  95  51  -5&lt;br /&gt;
 -1 -11 112  30  -2&lt;br /&gt;
  0  -8 124  13  -1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
For 3-tap table, first and last columns should contain zeros.&lt;br /&gt;
&lt;br /&gt;
==LEDs and Display backlight==&lt;br /&gt;
The LEDs can be controlled via '''/sys/class/leds/''', and then a file [http://www.gp32x.com/board/index.php?s=&amp;amp;showtopic=45309&amp;amp;view=findpost&amp;amp;p=673593]:&lt;br /&gt;
* pandora::sd1&lt;br /&gt;
* pandora::sd2&lt;br /&gt;
* pandora::charger&lt;br /&gt;
* pandora::power&lt;br /&gt;
* pandora::bluetooth&lt;br /&gt;
* pandora::wifi&lt;br /&gt;
* pandora::keypad_bl&lt;br /&gt;
Backlight can be controlled via '''/sys/class/backlight/'''.&lt;br /&gt;
&lt;br /&gt;
==Battery==&lt;br /&gt;
There is bq27500 battery monitoring chip onboard, that exports various files at /sys/class/power_supply/bq27500-0/ , for example 'capacity' tells charge percenage left. See [[Data_provided_by_Battery_and_Power_driver]] for more details.&amp;lt;br&amp;gt;&lt;br /&gt;
There are also similar directories at /sys/class/power_supply/twl4030_* that provide info while charging.&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
===Overclocking===&lt;br /&gt;
Can be performed by running a helper script&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo /usr/pandora/scripts/op_cpuspeed.sh X&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In case you want to do it from another program or non-interactively, you can use system() function (or similar) with:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo -n /usr/pandora/scripts/op_cpuspeed.sh -n X&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Note: you are advised not to change the clock explicitly from a program because optimal clock may differ on different pandora revisions, or somebody might want to run at different clock speed to save battery, CPU life, etc. . Let the user decide about the clock before running the program and set it using the system tools.&lt;br /&gt;
* Note: '-n' script argument is not available on pre-SuperZaxxon Final firmwares.&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Kernel]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Kernel_interface&amp;diff=26566</id>
		<title>Kernel interface</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Kernel_interface&amp;diff=26566"/>
		<updated>2013-02-16T01:23:32Z</updated>

		<summary type="html">&lt;p&gt;Notaz: battery stuff&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{hint|For apps use higher level libraries/interfaces like SDL, Qt, X or similar for your own good (portability). It may be impossible to retain this layout on some major hardware revision, let's say Pandora 3000, and your program will break. Also this requires some level of Linux programming knowledge.}}&lt;br /&gt;
&lt;br /&gt;
In case you need to write low level code (you can't/don't want to use high level libs like [[SDL]]), you can use [[kernel]] interface. This is the recommended way to access [[hardware]] (as opposed to [[GP2X]] style of accessing chip registers by mmap'ing /dev/mem), because in case hardware changes are needed in future, they could be handled by kernel and all programs would still work. It also should allow several programs to work at the same time and should be more stable.&lt;br /&gt;
&lt;br /&gt;
==Input==&lt;br /&gt;
[[Buttons]], [[keypad]], [[touchscreen]] and [[nubs]] are all exposed through Linux event interface (EVDEV). All devices are represented by '''/dev/input/eventX''' files, which can be opened, read and queried (using ioctl calls). The reads can be synchronous (the read will only return when user does something, like presses the button), or asynchronous (the system will report what changed since the last time you asked).&lt;br /&gt;
&lt;br /&gt;
{{warning&lt;br /&gt;
|Don't hardcode device filenames in your program!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
For example, currently /dev/input/event2 represents game buttons, but in future it may become touchscreen. Scan input device names instead, example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
for (i = 0; 1; i++)&lt;br /&gt;
{&lt;br /&gt;
  sprintf(name, &amp;quot;/dev/input/event%i&amp;quot;, i);&lt;br /&gt;
  fd = open(name, O_RDONLY);&lt;br /&gt;
  if (fd &amp;lt; 0) break; /* no more devices */&lt;br /&gt;
  ioctl(fd, EVIOCGNAME(sizeof(name)), name);&lt;br /&gt;
  if (strcmp(name, &amp;quot;gpio-keys&amp;quot;) == 0)&lt;br /&gt;
    return fd; /* found the buttons! */&lt;br /&gt;
  close(fd); /* we don't need this device */&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
List of device names and events they send:&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!name&lt;br /&gt;
!description&lt;br /&gt;
!event.type&lt;br /&gt;
!event.code&lt;br /&gt;
!event.value&lt;br /&gt;
|-&lt;br /&gt;
|keypad&lt;br /&gt;
|keypad&lt;br /&gt;
|EV_KEY&lt;br /&gt;
|KEY_0...KEY_Z, KEY_BACKSPACE, KEY_LEFTSHIFT, KEY_SPACE, KEY_ENTER, KEY_COMMA, KEY_DOT, KEY_FN&lt;br /&gt;
|0 - released&amp;lt;br&amp;gt; 1 - pressed&amp;lt;br&amp;gt; 2 - autorepeat event&lt;br /&gt;
|-&lt;br /&gt;
|gpio-keys&lt;br /&gt;
|game buttons&lt;br /&gt;
|EV_KEY&lt;br /&gt;
|KEY_UP, KEY_DOWN, KEY_LEFT, KEY_RIGHT, KEY_MENU (Pandora button), KEY_LEFTALT (Start), KEY_LEFTCTRL (Select), KEY_PAGEUP (Y/North), KEY_HOME (A/East), KEY_PAGEDOWN (X/South), KEY_END (B/West), KEY_RIGHTSHIFT (Shoulder L), KEY_RIGHTCTRL (Shoulder R), KEY_KPPLUS (Shoulder L2), KEY_KPMINUS (Shoulder R2), KEY_COFFEE (Hold)&lt;br /&gt;
|0 - released&amp;lt;br&amp;gt; 1 - pressed&lt;br /&gt;
|-&lt;br /&gt;
|gpio-keys&lt;br /&gt;
|lid state&lt;br /&gt;
|EV_SW&lt;br /&gt;
|SW_LID&lt;br /&gt;
|0 - closing&amp;lt;br&amp;gt; 1 - opening&lt;br /&gt;
|-&lt;br /&gt;
|touchscreen&lt;br /&gt;
|touchscreen&lt;br /&gt;
|EV_ABS&lt;br /&gt;
|ABS_X, ABS_Y, ABS_PRESSURE&lt;br /&gt;
|varies, use calibration data&lt;br /&gt;
|-&lt;br /&gt;
|nub0&lt;br /&gt;
|left nub&lt;br /&gt;
|EV_ABS&lt;br /&gt;
|ABS_X, ABS_Y&lt;br /&gt;
| -256 (Left/Up)&amp;lt;br&amp;gt;0&amp;lt;br&amp;gt;+256 (Right/Down)&lt;br /&gt;
|-&lt;br /&gt;
|nub1&lt;br /&gt;
|right nub&lt;br /&gt;
|EV_ABS&lt;br /&gt;
|ABS_X, ABS_Y&lt;br /&gt;
| -256 (Left/Up))&amp;lt;br&amp;gt;0&amp;lt;br&amp;gt;+256 (Right/Down)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Sample code:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://beagleboard.googlecode.com/files/evtest.c evtest.c]&lt;br /&gt;
[http://git.openpandora.org/cgi-bin/gitweb.cgi?p=pandora-misc.git;a=blob;f=op_test_inputs.c;hb=HEAD op_test_inputs.c]&lt;br /&gt;
&lt;br /&gt;
===Nubs===&lt;br /&gt;
Nubs have 3 modes that can be switched during runtime: absolute, mouse, mbuttons; this can be done by writing one of those 3 strings to /proc/pandora/nubX/mode . On mode change /dev/input/event* device reenumeration starts and files belonging to nubs are recreated and must be reopened.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Warning:&amp;lt;/strong&amp;gt; it is not guaranteed that input files will finish recreating after a write to /proc/pandora/nubX/mode finishes, it is application's responsibility to wait until those files are available.&lt;br /&gt;
&lt;br /&gt;
To solve the above problem, the OS provides a helper script that will wait for enumeration to complete:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/usr/pandora/scripts/op_nubchange.sh &amp;lt;left_num_mode&amp;gt; &amp;lt;right_nub_mode&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
op_nubchange.sh is not available on HF6 or earlier firmwares, to support them, something like this could be used:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
if [ -e /usr/pandora/scripts/op_nubchange.sh ]; then&lt;br /&gt;
  /usr/pandora/scripts/op_nubchange.sh absolute absolute&lt;br /&gt;
else&lt;br /&gt;
  echo absolute &amp;gt; /proc/pandora/nub0/mode&lt;br /&gt;
  echo absolute &amp;gt; /proc/pandora/nub1/mode&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Touchscreen===&lt;br /&gt;
Event interface returns uncalibrated values directly from driver, so you need to use tslib or manage calibration yourself (using data from /etc/pointercal).&lt;br /&gt;
&lt;br /&gt;
===X11===&lt;br /&gt;
When using the direct kernel api for input, it is also important to stop X processing the events as well. To do this you can create an X window to eat the events. There is also a utility that comes with the Pandora to do this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
op_runfbapp ./yourapp&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
Pandora uses [[ALSA]], but it has [[OSS]] emulation enabled too, so [[GP2X]] code should work.&lt;br /&gt;
&lt;br /&gt;
==Video==&lt;br /&gt;
===Architecture===&lt;br /&gt;
Framebuffer device (/dev/fbX) is supported. There are 3 framebuffers available ('''/dev/fb0''', /dev/fb1 and /dev/fb2), which represent 3 graphics/video layers on [[OMAP3]] by default (but can be reconfigured). Only /dev/fb0 is enabled by default.&lt;br /&gt;
&lt;br /&gt;
[[OMAP3]] display subsystem is controlled by a driver known as [[DSS2]], which has various controls available on /sys/devices/platform/omapdss/ (but they are not meant to be changed by programs, so they are root writable only). The driver exposes 3 layers (called overlays) and 2 displays. Overlays 1 and 2 can perform hardware scaling on the fly using 5-tap poly-phase filter, overlay0 can not. Displays 0 and 1 represent LCD and TV respectively. By default the 3 framebuffers (/dev/fbX) are redirected to 3 overlays, which all output to the LCD. This configuration is not meant to be changed by programs, only firmware should manage these.&lt;br /&gt;
&lt;br /&gt;
===Basic usage===&lt;br /&gt;
====framebuffer interface====&lt;br /&gt;
Framebuffers can be accessed Linux fbdev interface:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
fbdev = open(&amp;quot;/dev/fb0&amp;quot;, O_RDONLY);&lt;br /&gt;
buffer = mmap(0, 800*480*2, PROT_WRITE, MAP_SHARED, fbdev, 0);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
(this is basic example, no error checks)&lt;br /&gt;
&lt;br /&gt;
the returned pointer can be used to draw on the screen.&lt;br /&gt;
&lt;br /&gt;
Be sure to #include &amp;lt;linux/fb.h&amp;gt; to get access to the FB device ioctl interface, and &amp;lt;sys/ioctl.h&amp;gt; for access to ioctl itself.&lt;br /&gt;
&lt;br /&gt;
====double buffering====&lt;br /&gt;
This can be achieved using FBIOPAN_DISPLAY ioctl system call. For this you need to mmap framebuffer of double size&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
buffer1 = mmap(0, 800*480*2 * 2, PROT_WRITE, MAP_SHARED, fbdev, 0);&lt;br /&gt;
buffer2 = (char *)mem + 800*480*2;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then to display buffer2 you would call:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct fb_var_screeninfo fbvar;&lt;br /&gt;
ioctl(fbdev, FBIOGET_VSCREENINFO, &amp;amp;fbvar);&lt;br /&gt;
fbvar.yoffset = 480;&lt;br /&gt;
ioctl(fbdev, FBIOPAN_DISPLAY, &amp;amp;fbvar);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
going back to buffer1 would be repeating above with fbvar.yoffset = 0. Tripple or quad buffering can be implemented using the same technique.&lt;br /&gt;
&lt;br /&gt;
====vertical sync====&lt;br /&gt;
Linux has standard FBIO_WAITFORVSYNC for this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
int arg = 0;&lt;br /&gt;
ioctl(fbdev, FBIO_WAITFORVSYNC, &amp;amp;arg);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
be sure to pass argument value 0 or it will not work.&lt;br /&gt;
&lt;br /&gt;
Some toolchains don't have FBIO_WAITFORVSYNC defined in &amp;lt;linux/fb.h&amp;gt;, in which case you can define it in the following manner:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#ifndef FBIO_WAITFORVSYNC&lt;br /&gt;
  #define FBIO_WAITFORVSYNC _IOW('F', 0x20, __u32)&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====hardware scaling====&lt;br /&gt;
Overlay1 (/dev/fb1) can be used to achieve hardware scaling. Technically overlay2 (fb2) can be used for this too, but it is planned to be used by the system for TV-out functionality, so don't use it. The overlay is configured using series of standard and OMAP specific ioctl calls, but the system ships with some tools to achieve this from scripts too. This way the framebuffer can be set up for some arbitrary size (say 320x240) and can output to LCD as 800x480 with hardware scaling.&lt;br /&gt;
Here is an example script:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ofbset -fb /dev/fb1 -pos 0 0 -size 800 480 -mem 307200 -en 1&lt;br /&gt;
fbset -fb /dev/fb1 -g 320 240 320 480 16&lt;br /&gt;
&lt;br /&gt;
./your_app_here&lt;br /&gt;
&lt;br /&gt;
ofbset -fb /dev/fb1 -pos 0 0 -size 0 0 -mem 0 -en 0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What it does:&lt;br /&gt;
* allocates OMAP DSS layer, asks video output to be 800x480 at position 0,0 (could set it to 640x480 at 80,0 instead to get centered 2x scaling of 320x240). 307200 bytes of video memory are allocated for 2 320x240 16bpp screens (for doublebuffering).&lt;br /&gt;
* sets video mode to 320x240@16bpp, virtual resolution 320x480 for doublebuffering.&lt;br /&gt;
* runs your app&lt;br /&gt;
* cleans the video layer on exit&lt;br /&gt;
&lt;br /&gt;
Now the program can act as if it works with 320x240 16bpp screen.&lt;br /&gt;
&lt;br /&gt;
====LCD refresh rate====&lt;br /&gt;
The OS has a dedicated script which can change the LCD refresh rate. It must be ran with sudo:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
sudo -n /usr/pandora/scripts/op_lcdrate.sh 50&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
From code, system() function can be used for this.&lt;br /&gt;
&lt;br /&gt;
'''Note''': this doesn't mean your program has to run as root to use this (it never should!), just run the script as shown above.&lt;br /&gt;
&lt;br /&gt;
====gamma====&lt;br /&gt;
Since SZ 1.52, gamma can be controlled with another script, the same way as LCD refresh:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
sudo -n /usr/pandora/scripts/op_gamma.sh 1.0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
where 1.0 is the gamma level. If supplied gamma level is 0, then user defaults are used (useful to set on exit). There is also an optional -b N argument (to be specified before gamma value), where N controls black level (0-255, useful to combat LCD ghosting).&lt;br /&gt;
&lt;br /&gt;
===Hardware scaling filter control===&lt;br /&gt;
The hardware scaler in pandora uses poly-phase 5-tap 8-phase filter. It is described in 15.4.2.3.4 and 15.6.1.3 sections of TRM. There are 40 coefficients programmable for both horizontal and vertical resampling (vertical resampling might also use 3 taps/24 coefficients, it depends on available pixel clock).&lt;br /&gt;
====using predefined filters====&lt;br /&gt;
Just run 'sudo /usr/pandora/scripts/op_videofir.sh &amp;lt;name&amp;gt;', where name currently can be:&lt;br /&gt;
* default - the default filter from OMAP manual&lt;br /&gt;
* none - nearest neighbor&lt;br /&gt;
====using custom filters====&lt;br /&gt;
run 'sudo /usr/pandora/scripts/op_videofir.sh &amp;lt;basename&amp;gt;', where basename* files contains coefficient table. The script will look for &amp;lt;basename&amp;gt;_h, &amp;lt;basename&amp;gt;_v3 and &amp;lt;basename&amp;gt;_v5 files for 5-tap horizontal, 3-tap vertical and 5-tap vertical configurations respectively. Pass absolute or relative path for basename with './', like './something'. The coefficients should be in a form of table like described in TRM, for example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
  0   0 128   0   0&lt;br /&gt;
 -1  13 124  -8   0&lt;br /&gt;
 -2  30 112 -11  -1&lt;br /&gt;
 -5  51  95 -11  -2&lt;br /&gt;
  0  -9  73  73  -9&lt;br /&gt;
 -2 -11  95  51  -5&lt;br /&gt;
 -1 -11 112  30  -2&lt;br /&gt;
  0  -8 124  13  -1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
For 3-tap table, first and last columns should contain zeros.&lt;br /&gt;
&lt;br /&gt;
==LEDs and Display backlight==&lt;br /&gt;
The LEDs can be controlled via '''/sys/class/leds/''', and then a file [http://www.gp32x.com/board/index.php?s=&amp;amp;showtopic=45309&amp;amp;view=findpost&amp;amp;p=673593]:&lt;br /&gt;
* pandora::sd1&lt;br /&gt;
* pandora::sd2&lt;br /&gt;
* pandora::charger&lt;br /&gt;
* pandora::power&lt;br /&gt;
* pandora::bluetooth&lt;br /&gt;
* pandora::wifi&lt;br /&gt;
* pandora::keypad_bl&lt;br /&gt;
Backlight can be controlled via '''/sys/class/backlight/'''.&lt;br /&gt;
&lt;br /&gt;
==Battery==&lt;br /&gt;
There is bq27500 battery monitoring chip onboard, that exports various files at /sys/class/power_supply/bq27500-0/ , for example 'capacity' tells charge percenage left. See [[Data_provided_by_Battery_and_Power_driver]] for more details.&amp;lt;br&amp;gt;&lt;br /&gt;
There are also similar directories at /sys/class/power_supply/twl4030_* that provide info while charging.&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
===Overclocking===&lt;br /&gt;
Can be performed by running a helper script&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo /usr/pandora/scripts/op_cpuspeed.sh X&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In case you want to do it from another program or non-interactively, you can use system() function (or similar) with:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo -n /usr/pandora/scripts/op_cpuspeed.sh -n X&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Note: you are advised not to change the clock explicitly from a program because optimal clock may differ on different pandora revisions, or somebody might want to run at different clock speed to save battery, CPU life, etc. . Let the user decide about the clock before running the program and set it using the system tools.&lt;br /&gt;
* Note: '-n' script argument is not available on pre-SuperZaxxon Final firmwares.&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Kernel]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=SGX_drivers&amp;diff=26563</id>
		<title>SGX drivers</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=SGX_drivers&amp;diff=26563"/>
		<updated>2013-02-14T18:35:48Z</updated>

		<summary type="html">&lt;p&gt;Notaz: document TI SGX driver releases a bit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Releases==&lt;br /&gt;
TI has released several SGX driver versions over time, that are based on Imagination Technologies SGX DDK for Linux, hence there are two version numbers associated with single release: TI release version and Imgtech DDK version. In each release kernel driver sources are provided and precompiled libraries providing OpenGL/OpenVG functionality.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
!TI version&lt;br /&gt;
!SGX DDK version&lt;br /&gt;
!Date&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|3.00.00.08a&lt;br /&gt;
|1.3.13.1607&lt;br /&gt;
|2009-06-30&lt;br /&gt;
|-&lt;br /&gt;
|3.00.00.09&lt;br /&gt;
|1.3.13.1832&lt;br /&gt;
|2009-11-16&lt;br /&gt;
|-&lt;br /&gt;
|3.01.00.02&lt;br /&gt;
|1.4.14.2514&lt;br /&gt;
|2009-11-30&lt;br /&gt;
|-&lt;br /&gt;
|3.01.00.06&lt;br /&gt;
|1.4.14.2616&lt;br /&gt;
|2010-04-06&lt;br /&gt;
|ES5 introduced&lt;br /&gt;
|-&lt;br /&gt;
|3.01.00.07&lt;br /&gt;
|1.4.14.2616&lt;br /&gt;
|2010-08-18&lt;br /&gt;
|-&lt;br /&gt;
|4.00.00.01&lt;br /&gt;
|1.4.14.2616&lt;br /&gt;
|2010-09-09&lt;br /&gt;
|last working ES2&lt;br /&gt;
|-&lt;br /&gt;
|4.03.00.01&lt;br /&gt;
|1.6.16.3977&lt;br /&gt;
|2011-01-27&lt;br /&gt;
|-&lt;br /&gt;
|4.03.00.02&lt;br /&gt;
|1.6.16.3977&lt;br /&gt;
|2011-03-10&lt;br /&gt;
|-&lt;br /&gt;
|4.04.00.01&lt;br /&gt;
|1.6.16.4117&lt;br /&gt;
|2011-07-27&lt;br /&gt;
|introduces DRI2 dependency&lt;br /&gt;
|-&lt;br /&gt;
|4.04.00.02&lt;br /&gt;
|1.6.16.4117&lt;br /&gt;
|2011-08-03&lt;br /&gt;
|-&lt;br /&gt;
|4.04.00.03&lt;br /&gt;
|1.6.16.4117&lt;br /&gt;
|2011-08-30&lt;br /&gt;
|-&lt;br /&gt;
|4.04.00.04&lt;br /&gt;
|?&lt;br /&gt;
|2011-09-29&lt;br /&gt;
|internal only (engineering drop) release&lt;br /&gt;
|-&lt;br /&gt;
|4.05.00.01&lt;br /&gt;
|1.6.16.4117&lt;br /&gt;
|2011-10-25&lt;br /&gt;
|4.04 + build fixes, no more ES2 libs&lt;br /&gt;
|-&lt;br /&gt;
|4.05.00.02&lt;br /&gt;
|1.6.16.4117&lt;br /&gt;
|2011-10-27&lt;br /&gt;
|-&lt;br /&gt;
|4.05.00.03&lt;br /&gt;
|1.6.16.4117&lt;br /&gt;
|2011-12-14&lt;br /&gt;
|-&lt;br /&gt;
|4.06.00.01&lt;br /&gt;
|1.7.17.783851&lt;br /&gt;
|2012-04-03&lt;br /&gt;
|-&lt;br /&gt;
|4.06.00.02&lt;br /&gt;
|1.7.17.867897&lt;br /&gt;
|2012-05-30&lt;br /&gt;
|-&lt;br /&gt;
|4.06.00.03&lt;br /&gt;
|1.7.17.867897&lt;br /&gt;
|2012-06-18&lt;br /&gt;
|-&lt;br /&gt;
|4.07.00.01&lt;br /&gt;
|1.7.17.867897&lt;br /&gt;
|2012-09-06&lt;br /&gt;
|missing libs&lt;br /&gt;
|-&lt;br /&gt;
|4.08.00.01&lt;br /&gt;
|1.9.19.2139099&lt;br /&gt;
|2012-09-28&lt;br /&gt;
|&amp;quot;tested on AM parts only&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|4.08.00.02&lt;br /&gt;
|1.9.19.2188537&lt;br /&gt;
|2012-12-10&lt;br /&gt;
|&amp;quot;tested on AM parts only&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Android releases'''&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
!TI version&lt;br /&gt;
!SGX DDK version&lt;br /&gt;
|-&lt;br /&gt;
|3.01.00.03&lt;br /&gt;
|1.5.15.2766&lt;br /&gt;
|-&lt;br /&gt;
|4.03.00.01&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|4.03.01.00&lt;br /&gt;
|?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Library variants==&lt;br /&gt;
Each TI release comes with different set of libraries for different SGX chip revisions. TI SGX drivers use weird naming of SGX chip versions which is inconsistent with OMAP chip revision or SGX chip revision names. As various pandora versions use different OMAP chip versions, this may become rather confusing, so hopefully this table can help.&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
!SoC name&lt;br /&gt;
!SoC version&lt;br /&gt;
!SGX core revision&lt;br /&gt;
!TI diver name&lt;br /&gt;
!Pandora name&lt;br /&gt;
|-&lt;br /&gt;
|OMAP3530&lt;br /&gt;
|ES2.1&lt;br /&gt;
|1.0.3&lt;br /&gt;
|ES2.0&lt;br /&gt;
|CC/256M&lt;br /&gt;
|-&lt;br /&gt;
|OMAP3530&lt;br /&gt;
|ES3.1&lt;br /&gt;
|1.2.1&lt;br /&gt;
|ES3.0&lt;br /&gt;
|Rebirth&lt;br /&gt;
|-&lt;br /&gt;
|DM3730&lt;br /&gt;
|ES1.x&lt;br /&gt;
|1.2.5&lt;br /&gt;
|ES5.0&lt;br /&gt;
|1GHz&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Useful links==&lt;br /&gt;
[http://processors.wiki.ti.com/index.php/OMAP35x_Graphics_SDK_Release_Notes_Archive TI release notes]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/index.html TI relaese downloads]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Kernel_interface&amp;diff=26329</id>
		<title>Kernel interface</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Kernel_interface&amp;diff=26329"/>
		<updated>2012-11-27T14:36:40Z</updated>

		<summary type="html">&lt;p&gt;Notaz: add gamma info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{hint|For apps use higher level libraries/interfaces like SDL, Qt, X or similar for your own good (portability). It may be impossible to retain this layout on some major hardware revision, let's say Pandora 3000, and your program will break. Also this requires some level of Linux programming knowledge.}}&lt;br /&gt;
&lt;br /&gt;
In case you need to write low level code (you can't/don't want to use high level libs like [[SDL]]), you can use [[kernel]] interface. This is the recommended way to access [[hardware]] (as opposed to [[GP2X]] style of accessing chip registers by mmap'ing /dev/mem), because in case hardware changes are needed in future, they could be handled by kernel and all programs would still work. It also should allow several programs to work at the same time and should be more stable.&lt;br /&gt;
&lt;br /&gt;
==Input==&lt;br /&gt;
[[Buttons]], [[keypad]], [[touchscreen]] and [[nubs]] are all exposed through Linux event interface (EVDEV). All devices are represented by '''/dev/input/eventX''' files, which can be opened, read and queried (using ioctl calls). The reads can be synchronous (the read will only return when user does something, like presses the button), or asynchronous (the system will report what changed since the last time you asked).&lt;br /&gt;
&lt;br /&gt;
{{warning&lt;br /&gt;
|Don't hardcode device filenames in your program!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
For example, currently /dev/input/event2 represents game buttons, but in future it may become touchscreen. Scan input device names instead, example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
for (i = 0; 1; i++)&lt;br /&gt;
{&lt;br /&gt;
  sprintf(name, &amp;quot;/dev/input/event%i&amp;quot;, i);&lt;br /&gt;
  fd = open(name, O_RDONLY);&lt;br /&gt;
  if (fd &amp;lt; 0) break; /* no more devices */&lt;br /&gt;
  ioctl(fd, EVIOCGNAME(sizeof(name)), name);&lt;br /&gt;
  if (strcmp(name, &amp;quot;gpio-keys&amp;quot;) == 0)&lt;br /&gt;
    return fd; /* found the buttons! */&lt;br /&gt;
  close(fd); /* we don't need this device */&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
List of device names and events they send:&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!name&lt;br /&gt;
!description&lt;br /&gt;
!event.type&lt;br /&gt;
!event.code&lt;br /&gt;
!event.value&lt;br /&gt;
|-&lt;br /&gt;
|keypad&lt;br /&gt;
|keypad&lt;br /&gt;
|EV_KEY&lt;br /&gt;
|KEY_0...KEY_Z, KEY_BACKSPACE, KEY_LEFTSHIFT, KEY_SPACE, KEY_ENTER, KEY_COMMA, KEY_DOT, KEY_FN&lt;br /&gt;
|0 - released&amp;lt;br&amp;gt; 1 - pressed&amp;lt;br&amp;gt; 2 - autorepeat event&lt;br /&gt;
|-&lt;br /&gt;
|gpio-keys&lt;br /&gt;
|game buttons&lt;br /&gt;
|EV_KEY&lt;br /&gt;
|KEY_UP, KEY_DOWN, KEY_LEFT, KEY_RIGHT, KEY_MENU (Pandora button), KEY_LEFTALT (Start), KEY_LEFTCTRL (Select), KEY_END (Y/North), KEY_HOME (A/East), KEY_PAGEDOWN (X/South), KEY_END (B/West), KEY_RIGHTSHIFT (Shoulder L), KEY_RIGHTCTRL (Shoulder R), KEY_KPPLUS (Shoulder L2), KEY_KPMINUS (Shoulder R2), KEY_COFFEE (Hold)&lt;br /&gt;
|0 - released&amp;lt;br&amp;gt; 1 - pressed&lt;br /&gt;
|-&lt;br /&gt;
|gpio-keys&lt;br /&gt;
|lid state&lt;br /&gt;
|EV_SW&lt;br /&gt;
|SW_LID&lt;br /&gt;
|0 - closing&amp;lt;br&amp;gt; 1 - opening&lt;br /&gt;
|-&lt;br /&gt;
|touchscreen&lt;br /&gt;
|touchscreen&lt;br /&gt;
|EV_ABS&lt;br /&gt;
|ABS_X, ABS_Y, ABS_PRESSURE&lt;br /&gt;
|varies, use calibration data&lt;br /&gt;
|-&lt;br /&gt;
|nub0&lt;br /&gt;
|left nub&lt;br /&gt;
|EV_ABS&lt;br /&gt;
|ABS_X, ABS_Y&lt;br /&gt;
| -256 (Left/Up)&amp;lt;br&amp;gt;0&amp;lt;br&amp;gt;+256 (Right/Down)&lt;br /&gt;
|-&lt;br /&gt;
|nub1&lt;br /&gt;
|right nub&lt;br /&gt;
|EV_ABS&lt;br /&gt;
|ABS_X, ABS_Y&lt;br /&gt;
| -256 (Left/Up))&amp;lt;br&amp;gt;0&amp;lt;br&amp;gt;+256 (Right/Down)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Sample code:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://beagleboard.googlecode.com/files/evtest.c evtest.c]&lt;br /&gt;
[http://git.openpandora.org/cgi-bin/gitweb.cgi?p=pandora-misc.git;a=blob;f=op_test_inputs.c;hb=HEAD op_test_inputs.c]&lt;br /&gt;
&lt;br /&gt;
===Nubs===&lt;br /&gt;
Nubs have 3 modes that can be switched during runtime: absolute, mouse, mbuttons; this can be done by writing one of those 3 strings to /proc/pandora/nubX/mode . On mode change /dev/input/event* device reenumeration starts and files belonging to nubs are recreated and must be reopened.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Warning:&amp;lt;/strong&amp;gt; it is not guaranteed that input files will finish recreating after a write to /proc/pandora/nubX/mode finishes, it is application's responsibility to wait until those files are available.&lt;br /&gt;
&lt;br /&gt;
To solve the above problem, the OS provides a helper script that will wait for enumeration to complete:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/usr/pandora/scripts/op_nubchange.sh &amp;lt;left_num_mode&amp;gt; &amp;lt;right_nub_mode&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
op_nubchange.sh is not available on HF6 or earlier firmwares, to support them, something like this could be used:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
if [ -e /usr/pandora/scripts/op_nubchange.sh ]; then&lt;br /&gt;
  /usr/pandora/scripts/op_nubchange.sh absolute absolute&lt;br /&gt;
else&lt;br /&gt;
  echo absolute &amp;gt; /proc/pandora/nub0/mode&lt;br /&gt;
  echo absolute &amp;gt; /proc/pandora/nub1/mode&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Touchscreen===&lt;br /&gt;
Event interface returns uncalibrated values directly from driver, so you need to use tslib or manage calibration yourself (using data from /etc/pointercal).&lt;br /&gt;
&lt;br /&gt;
===X11===&lt;br /&gt;
When using the direct kernel api for input, it is also important to stop X processing the events as well. To do this you can create an X window to eat the events. There is also a utility that comes with the Pandora to do this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
op_runfbapp ./yourapp&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
Pandora uses [[ALSA]], but it has [[OSS]] emulation enabled too, so [[GP2X]] code should work.&lt;br /&gt;
&lt;br /&gt;
==Video==&lt;br /&gt;
===Architecture===&lt;br /&gt;
Framebuffer device (/dev/fbX) is supported. There are 3 framebuffers available ('''/dev/fb0''', /dev/fb1 and /dev/fb2), which represent 3 graphics/video layers on [[OMAP3]] by default (but can be reconfigured). Only /dev/fb0 is enabled by default.&lt;br /&gt;
&lt;br /&gt;
[[OMAP3]] display subsystem is controlled by a driver known as [[DSS2]], which has various controls available on /sys/devices/platform/omapdss/ (but they are not meant to be changed by programs, so they are root writable only). The driver exposes 3 layers (called overlays) and 2 displays. Overlays 1 and 2 can perform hardware scaling on the fly using 5-tap poly-phase filter, overlay0 can not. Displays 0 and 1 represent LCD and TV respectively. By default the 3 framebuffers (/dev/fbX) are redirected to 3 overlays, which all output to the LCD. This configuration is not meant to be changed by programs, only firmware should manage these.&lt;br /&gt;
&lt;br /&gt;
===Basic usage===&lt;br /&gt;
====framebuffer interface====&lt;br /&gt;
Framebuffers can be accessed Linux fbdev interface:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
fbdev = open(&amp;quot;/dev/fb0&amp;quot;, O_RDONLY);&lt;br /&gt;
buffer = mmap(0, 800*480*2, PROT_WRITE, MAP_SHARED, fbdev, 0);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
(this is basic example, no error checks)&lt;br /&gt;
&lt;br /&gt;
the returned pointer can be used to draw on the screen.&lt;br /&gt;
&lt;br /&gt;
Be sure to #include &amp;lt;linux/fb.h&amp;gt; to get access to the FB device ioctl interface, and &amp;lt;sys/ioctl.h&amp;gt; for access to ioctl itself.&lt;br /&gt;
&lt;br /&gt;
====double buffering====&lt;br /&gt;
This can be achieved using FBIOPAN_DISPLAY ioctl system call. For this you need to mmap framebuffer of double size&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
buffer1 = mmap(0, 800*480*2 * 2, PROT_WRITE, MAP_SHARED, fbdev, 0);&lt;br /&gt;
buffer2 = (char *)mem + 800*480*2;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then to display buffer2 you would call:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct fb_var_screeninfo fbvar;&lt;br /&gt;
ioctl(fbdev, FBIOGET_VSCREENINFO, &amp;amp;fbvar);&lt;br /&gt;
fbvar.yoffset = 480;&lt;br /&gt;
ioctl(fbdev, FBIOPAN_DISPLAY, &amp;amp;fbvar);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
going back to buffer1 would be repeating above with fbvar.yoffset = 0. Tripple or quad buffering can be implemented using the same technique.&lt;br /&gt;
&lt;br /&gt;
====vertical sync====&lt;br /&gt;
Linux has standard FBIO_WAITFORVSYNC for this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
int arg = 0;&lt;br /&gt;
ioctl(fbdev, FBIO_WAITFORVSYNC, &amp;amp;arg);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
be sure to pass argument value 0 or it will not work.&lt;br /&gt;
&lt;br /&gt;
Some toolchains don't have FBIO_WAITFORVSYNC defined in &amp;lt;linux/fb.h&amp;gt;, in which case you can define it in the following manner:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#ifndef FBIO_WAITFORVSYNC&lt;br /&gt;
  #define FBIO_WAITFORVSYNC _IOW('F', 0x20, __u32)&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====hardware scaling====&lt;br /&gt;
Overlay1 (/dev/fb1) can be used to achieve hardware scaling. Technically overlay2 (fb2) can be used for this too, but it is planned to be used by the system for TV-out functionality, so don't use it. The overlay is configured using series of standard and OMAP specific ioctl calls, but the system ships with some tools to achieve this from scripts too. This way the framebuffer can be set up for some arbitrary size (say 320x240) and can output to LCD as 800x480 with hardware scaling.&lt;br /&gt;
Here is an example script:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ofbset -fb /dev/fb1 -pos 0 0 -size 800 480 -mem 307200 -en 1&lt;br /&gt;
fbset -fb /dev/fb1 -g 320 240 320 480 16&lt;br /&gt;
&lt;br /&gt;
./your_app_here&lt;br /&gt;
&lt;br /&gt;
ofbset -fb /dev/fb1 -pos 0 0 -size 0 0 -mem 0 -en 0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What it does:&lt;br /&gt;
* allocates OMAP DSS layer, asks video output to be 800x480 at position 0,0 (could set it to 640x480 at 80,0 instead to get centered 2x scaling of 320x240). 307200 bytes of video memory are allocated for 2 320x240 16bpp screens (for doublebuffering).&lt;br /&gt;
* sets video mode to 320x240@16bpp, virtual resolution 320x480 for doublebuffering.&lt;br /&gt;
* runs your app&lt;br /&gt;
* cleans the video layer on exit&lt;br /&gt;
&lt;br /&gt;
Now the program can act as if it works with 320x240 16bpp screen.&lt;br /&gt;
&lt;br /&gt;
====LCD refresh rate====&lt;br /&gt;
The OS has a dedicated script which can change the LCD refresh rate. It must be ran with sudo:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
sudo -n /usr/pandora/scripts/op_lcdrate.sh 50&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
From code, system() function can be used for this.&lt;br /&gt;
&lt;br /&gt;
'''Note''': this doesn't mean your program has to run as root to use this (it never should!), just run the script as shown above.&lt;br /&gt;
&lt;br /&gt;
====gamma====&lt;br /&gt;
Since SZ 1.52, gamma can be controlled with another script, the same way as LCD refresh:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
sudo -n /usr/pandora/scripts/op_gamma.sh 1.0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
where 1.0 is the gamma level. If supplied gamma level is 0, then user defaults are used (useful to set on exit). There is also an optional -b N argument (to be specified before gamma value), where N controls black level (0-255, useful to combat LCD ghosting).&lt;br /&gt;
&lt;br /&gt;
===Hardware scaling filter control===&lt;br /&gt;
The hardware scaler in pandora uses poly-phase 5-tap 8-phase filter. It is described in 15.4.2.3.4 and 15.6.1.3 sections of TRM. There are 40 coefficients programmable for both horizontal and vertical resampling (vertical resampling might also use 3 taps/24 coefficients, it depends on available pixel clock).&lt;br /&gt;
====using predefined filters====&lt;br /&gt;
Just run 'sudo /usr/pandora/scripts/op_videofir.sh &amp;lt;name&amp;gt;', where name currently can be:&lt;br /&gt;
* default - the default filter from OMAP manual&lt;br /&gt;
* none - nearest neighbor&lt;br /&gt;
====using custom filters====&lt;br /&gt;
run 'sudo /usr/pandora/scripts/op_videofir.sh &amp;lt;basename&amp;gt;', where basename* files contains coefficient table. The script will look for &amp;lt;basename&amp;gt;_h, &amp;lt;basename&amp;gt;_v3 and &amp;lt;basename&amp;gt;_v5 files for 5-tap horizontal, 3-tap vertical and 5-tap vertical configurations respectively. Pass absolute or relative path for basename with './', like './something'. The coefficients should be in a form of table like described in TRM, for example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
  0   0 128   0   0&lt;br /&gt;
 -1  13 124  -8   0&lt;br /&gt;
 -2  30 112 -11  -1&lt;br /&gt;
 -5  51  95 -11  -2&lt;br /&gt;
  0  -9  73  73  -9&lt;br /&gt;
 -2 -11  95  51  -5&lt;br /&gt;
 -1 -11 112  30  -2&lt;br /&gt;
  0  -8 124  13  -1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
For 3-tap table, first and last columns should contain zeros.&lt;br /&gt;
&lt;br /&gt;
==LEDs and Display backlight==&lt;br /&gt;
The LEDs can be controlled via '''/sys/class/leds/''', and then a file [http://www.gp32x.com/board/index.php?s=&amp;amp;showtopic=45309&amp;amp;view=findpost&amp;amp;p=673593]:&lt;br /&gt;
* pandora::sd1&lt;br /&gt;
* pandora::sd2&lt;br /&gt;
* pandora::charger&lt;br /&gt;
* pandora::power&lt;br /&gt;
* pandora::bluetooth&lt;br /&gt;
* pandora::wifi&lt;br /&gt;
* pandora::keypad_bl&lt;br /&gt;
Backlight can be controlled via '''/sys/class/backlight/'''.&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
===Overclocking===&lt;br /&gt;
Can be performed by running a helper script&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo /usr/pandora/scripts/op_cpuspeed.sh X&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In case you want to do it from another program or non-interactively, you can use system() function (or similar) with:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo -n /usr/pandora/scripts/op_cpuspeed.sh -n X&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Note: you are advised not to change the clock explicitly from a program because optimal clock may differ on different pandora revisions, or somebody might want to run at different clock speed to save battery, CPU life, etc. . Let the user decide about the clock before running the program and set it using the system tools.&lt;br /&gt;
* Note: '-n' script argument is not available on pre-SuperZaxxon Final firmwares.&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Kernel]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Emulator_List&amp;diff=26328</id>
		<title>Emulator List</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Emulator_List&amp;diff=26328"/>
		<updated>2012-11-25T20:09:19Z</updated>

		<summary type="html">&lt;p&gt;Notaz: update my stuff&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''These lists were last updated on 2012-06-13 to include the latest files from the [http://repo.openpandora.org/ Repo], the [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,5 File Archive], [http://apps.open-pandora.org/cgi-bin/viewarea.pl?Emulators Pandora Apps], and the [[Emulator list#Forums|community forums]]. For other software lists on the wiki, see [[Software projects]] and [[Games]].''&lt;br /&gt;
&lt;br /&gt;
If different versions of an [[emulator]] were released, the listed &amp;quot;release date&amp;quot; is from the most recent one.&lt;br /&gt;
&lt;br /&gt;
Please click on the little squares to sort by different categories.&lt;br /&gt;
&lt;br /&gt;
To read a usage guide for several emulators, download [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,5,404 this guide].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Released emulators==&lt;br /&gt;
&lt;br /&gt;
Entry colors only denote compatibility and speed; interface and features are not taken into account.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; text-align: center;&amp;quot;&lt;br /&gt;
!Quality&lt;br /&gt;
!Description&lt;br /&gt;
|- style=&amp;quot;background: #81BEF7&amp;quot;&lt;br /&gt;
|Perfect&lt;br /&gt;
|Emulators with a '''blue''' background, for all intents and purposes, work perfectly.  Virtually every game runs at full speed, and ones that don't come close.  No overclocking required.  Practically no compatibility issues, with the possible exception of extremely obscure hardware tricks or addons.&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Fantastic&lt;br /&gt;
|Emulators with a '''green''' background work very well.  A lot of games run great at or close to 500Mhz, though some issues do exist.  Little overclocking is required.  Compatibility issues are minimum.&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|Decent&lt;br /&gt;
|Emulators with a '''yellow''' background have issues.  Some games are playable, and a few do run full speed, but overclocking is typically needed.  Compatibility issues may be considerable.  This could also represent emulators with great compatibility, but low speed (or vice versa).&lt;br /&gt;
|- style=&amp;quot;background: #F7BE81&amp;quot;&lt;br /&gt;
|Bad&lt;br /&gt;
|Emulators with an '''orange''' background do not run well.  Few games are playable.  Overclocking is mandatory.  There may be lots of compatibility issues as well.&lt;br /&gt;
|- style=&amp;quot;background: #F78181&amp;quot;&lt;br /&gt;
|Poor&lt;br /&gt;
|Emulators with a '''red''' background are worthless.  No games are playable at 500Mhz, and you have to overclock very high to see a difference.  Full speed is out of the question.  Compatibility is likely nonexistent.  This is test release territory.&lt;br /&gt;
|-&lt;br /&gt;
|N/A&lt;br /&gt;
|Emulators with a '''white''' background do not have enough information about them.  Please try them out and add to this page!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- To add a color to an entry, simple replace &amp;quot;#xxxxxx&amp;quot; with these numbers;&lt;br /&gt;
Blue: #81BEF7&lt;br /&gt;
Green: #90FF90&lt;br /&gt;
Yellow: #F3F781&lt;br /&gt;
Orange: #F7BE81&lt;br /&gt;
Red: #F78181&lt;br /&gt;
Leave it at #xxxxxx for white; invalid values do not change color. --&amp;gt;&lt;br /&gt;
''If you have tried an emulator which has an uncoloured background, please add the appropriate background colour based on the legend to reflect the status of the emulator.  You may add a statement in the notes if you feel that it's necessary.''&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse; text-align: center; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
! Emulated System&lt;br /&gt;
! Project Name&lt;br /&gt;
! Release Date &amp;lt;small&amp;gt;(YYYY-MM-DD)&amp;lt;/small&amp;gt;&lt;br /&gt;
! Download&lt;br /&gt;
! Authored or Ported By&lt;br /&gt;
! &amp;lt;span title=&amp;quot;Compatibility List&amp;quot;&amp;gt;C&amp;lt;/span&amp;gt;&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
! &amp;lt;span title=&amp;quot;Compression Support&amp;quot;&amp;gt;CS&amp;lt;/span&amp;gt;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&lt;br /&gt;
! Notes&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Various{{HideableNotes|&amp;lt;br/&amp;gt;Atari Lynx, Bandai Wonderswan, GBA, GB/C, Sega Game Gear, Sega Master System, PC Engine/CD, NES, Virtual Boy, Neo Geo Pocket Colour}}&lt;br /&gt;
|Mednafen 0.9.17.r3&lt;br /&gt;
|2011-07-13&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=package.mednafen-pandora.r3 Repo]&lt;br /&gt;
|pder&lt;br /&gt;
|&lt;br /&gt;
|zip, [http://boards.openpandora.org/index.php?/topic/4047-tutorial-how-to-save-space-on-turbo-cdpc-engine-cd-games/ ogg]&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/59533-mednafen-0-9-17-1-wip/page__gopid__950099&amp;amp;#entry950099 Discussion]  GBA and VB don't run fullspeed.&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Acorn RISC-PC&lt;br /&gt;
|[[pandrpcemu]] ('''beta''')&lt;br /&gt;
|2011-05-28&lt;br /&gt;
|[http://www.pokenet.co.uk/misc/files.pandora/pandrpcemu.pnd Download]  [http://repo.openpandora.org/?page=detail&amp;amp;app=pandrpcemu Repo]&lt;br /&gt;
|hideki&lt;br /&gt;
|&lt;br /&gt;
|None&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/3762-pandrpcemu-beta-acorn-risc-pc/ Discussion]&amp;lt;br /&amp;gt;Also available natively (32-bit RO5) under [[Software projects#Unreleased software (&amp;quot;Projects Under Development&amp;quot;)|Software projects]]&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Amiga 500 / Amiga 1200&lt;br /&gt;
|[[UAE4ALL]] V2.0&lt;br /&gt;
|2012-06-13&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=uae4all Main version]&lt;br /&gt;
|John4p, Pickle, Notaz, tuki_cat, et al.&lt;br /&gt;
|[http://spreadsheets.google.com/pub?key=0AuBR5X_s_5_idG92ZVQ5cEs4ZEhYTm5sSjFIcl83U2c&amp;amp;hl=en&amp;amp;gid=0 GD]&lt;br /&gt;
|gzip&lt;br /&gt;
|&amp;quot;UAE4All 2.0 only works with FAME/C core. Cyclone and UAE core are not compatible.&lt;br /&gt;
Thus UAE4All 2.0 replaces the old FAME/C release. The old Cyclone and UAE core releases are still available in this release (but they're still UAE4All 1.1 and won't see new features). [http://boards.openpandora.org/index.php?/topic/8770-uae4all-20/ Discussion]  {{HideableNotes|}}&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|Amiga 1200&lt;br /&gt;
|[[P-UAE]]&lt;br /&gt;
|2010-06-06&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/puae.inf Apps] [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,86 Archive]&lt;br /&gt;
|Gnostic&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|Amiga&lt;br /&gt;
|[[pandeuae]] ('''beta''')&lt;br /&gt;
|2011-05-09&lt;br /&gt;
|[http://www.hidnet.org.uk/pandeuae.pnd Download]&lt;br /&gt;
|hideki&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/3350-euae-port/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #81BEF7&amp;quot;&lt;br /&gt;
|Amstrad CPC&lt;br /&gt;
|[[Pandora-CAP32]]&lt;br /&gt;
|2010-06-27&lt;br /&gt;
|[http://zx81.zx81.free.fr/public/pandora/cap32/pandora-cap32-v1.1.0-bin.zip Download] [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,115 Archive]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|gzip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54801-pandora-cap32-v1-1-0/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Apple II&lt;br /&gt;
|[[LinApple]] 1.3.5.0&lt;br /&gt;
|2011-09-13&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=linapple-jerryblade-042011 Repo]&lt;br /&gt;
|JerryBlade, CFWhitman&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Discussion: [http://www.gp32x.com/board/index.php?/topic/59229-apple-emulator-for-pandora/page__view__findpost__p__957512 GP32X] [http://boards.openpandora.org/index.php?/topic/2490-apple-ii-emulator/ OP]&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Arcade (laserdisc)&lt;br /&gt;
|[[Daphne]] v1.0.0.3 &lt;br /&gt;
|2011-08-14&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=daphne-daphne-25097 Repo]&lt;br /&gt;
|mcobit&lt;br /&gt;
|&lt;br /&gt;
|[http://winff.org/html_new/ Bitrate]&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/4852-daphne-wip/ Discussion]  {{HideableNotes|Use [http://winff.org/html_new/ WinFF] to re-encode your video files to a lower bitrate if necessary, as doing so will improve speed and shrink the file.  Faster SD cards also improve speed greatly.}}&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|Arcade&lt;br /&gt;
|[[MAME]] v0.106 &lt;br /&gt;
|2010-05-29&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/mame106.pnd.inf Apps]  [http://repo.openpandora.org/?page=detail&amp;amp;app=mame.cosam.106 Repo]&lt;br /&gt;
|SteveM&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|{{HideableNotes|Runs more games than MAME4ALL, but at a slower speed.}}&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Arcade&lt;br /&gt;
|[[MAME4All]] v2.5b7&lt;br /&gt;
|2010-09-07&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,73,200 Archive]  [http://repo.openpandora.org/?page=detail&amp;amp;app=mame4all.cosam.2.5-beta7 Repo]&lt;br /&gt;
|SteveM, Franxis&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/56188-mame4all-beta/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Arcade&lt;br /&gt;
|SDLMAME v.110&lt;br /&gt;
|2010-06-30&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,73,106 Archive]&lt;br /&gt;
|?&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|Use MAME4ALL instead, this is slow.&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Atari 520&lt;br /&gt;
|PAtari v0.1&lt;br /&gt;
|2009-04-03&lt;br /&gt;
|[http://www.pandorasource.de/download.php?view.4 Download]&lt;br /&gt;
|cpasjuste&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
|Atari 800&lt;br /&gt;
|Atari800&lt;br /&gt;
|2011-08-06&lt;br /&gt;
|[http://ompldr.org/vOXUxYQ/atari800.pnd.zip Download]&lt;br /&gt;
|StreaK&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/60165-atari-800-emulator-almost-final/ Discussion]  {{HideableNotes|Emulates the 800, 800XL, 130XE, and 5200 platforms.}}&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Atari 8-Bit&lt;br /&gt;
|Pandora-Atari&lt;br /&gt;
|2010-08-04&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/atari-1.1.0.inf Apps]  [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,173 Archive]  &lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/55724-pandora-atari-atari-8001305200-emulator-for-pandora-v110/ Discussion] {{HideableNotes|Emulates the 800, 800XL, 130XE, and 5200 platforms.}}&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Atari Lynx&lt;br /&gt;
|[[Handy]]&lt;br /&gt;
|2010-06-18&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=handy.cosam.0.5.0.0 Repo]&lt;br /&gt;
|SteveM&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54220-handy/ Discussion]  {{HideableNotes|Do not turn on the FPS counter, or else the emulator will slow down dramatically.}}&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Atari ST&lt;br /&gt;
|Hatari 1.0.3.2&lt;br /&gt;
|2011-08-02&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=hatari.skeezix.pkg Repo]&lt;br /&gt;
|Skeezix&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/58088-hatari-atari-st-emu-140-released/page__view__findpost__p__934671 Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Atari VCS 2600&lt;br /&gt;
|[[Stella]]&lt;br /&gt;
|2010-05-07&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/Stella312a.inf Apps]  [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,53 Archive]&lt;br /&gt;
|Skeezix&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Atari VCS 2600&lt;br /&gt;
|Pandora-2600 ([[Stella]])&lt;br /&gt;
|2010-07-11&lt;br /&gt;
|[http://zx81.zx81.free.fr/public/pandora/2600/pandora-2600-v1.1.0-pnd.zip Download]  [http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/2600-1.1.0.inf Apps]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54934-pandora-2600-atari-2600-emulator-for-pandora-v110/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Atari VCS 2600&lt;br /&gt;
|[[Stella]] &lt;br /&gt;
|2011-08-03&lt;br /&gt;
|[http://ompldr.org/vOXF0dQ/stella.pnd Download]&lt;br /&gt;
|StreaK&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/60123-stella-atari-2600-beta-in-pnd/ Discussion]. {{HideableNotes|PAL games don't run.}}&lt;br /&gt;
|-&lt;br /&gt;
|Atari VCS 2600&lt;br /&gt;
|[[Stella]] 3.4.2.2&lt;br /&gt;
|2011-10-06&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=stella-svn Repo]&lt;br /&gt;
|Lomaxx&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Atari VCS 7800&lt;br /&gt;
|Pandora-7800 v1.1.0&lt;br /&gt;
|2010-07-11&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,146 Archive]  [http://zx81.zx81.free.fr/public/pandora/7800/pandora-7800-v1.1.0-pnd.zip Download]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/55189-pandora-7800-atari-7800-emulator-for-pandora-v110/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Colecovision&lt;br /&gt;
|[[Colem]]&lt;br /&gt;
|2010-05-29&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/colem_alpha.inf Apps]  [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,70 Archive]  [http://repo.openpandora.org/?page=detail&amp;amp;app=colem.skeezix Repo]&lt;br /&gt;
|Skeezix&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Colecovision&lt;br /&gt;
|[[Pandora Colem]]&lt;br /&gt;
|2010-06-30&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/colem-1.1.0.inf Apps]  [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,129 Archive]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/60164-colem-port-of-zx81-slightly-modified/ Discussion for modified version (no PND)]&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Commodore 64&lt;br /&gt;
|[[Vice]]&lt;br /&gt;
|2010-03-25&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/ViceX64.inf Apps] [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,46 Archive]&lt;br /&gt;
|Pickle&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|{{HideableNotes|Very good emulation, deactivate wrap mode in speed seetings if you suffer sound problems}}&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Commodore (Other)&lt;br /&gt;
|[[Vice]]&lt;br /&gt;
|2010-03-25&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/ViceMisc.inf Apps] [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,47 Archive]&lt;br /&gt;
|Pickle&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|{{HideableNotes|Emulates the CBM2, C128, PET, Plus4, and VIC platforms.}}&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|GPH GP2X/Wiz&lt;br /&gt;
|[[Ginge]]&lt;br /&gt;
|2010-08-16&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=package.ginge.notaz Repo]&lt;br /&gt;
|Notaz&lt;br /&gt;
|&lt;br /&gt;
|None&lt;br /&gt;
|{{HideableNotes|Not really an emulator. [http://www.gp32x.com/board/index.php?/topic/55980-ginge/page__view__findpost__p__913442 DO NOT run from root].  To get rid of the default blur filter, use [http://www.gp32x.com/board/index.php?/topic/57179-pandora-emulators-vs-gp2xwiz-emulators/page__view__findpost__p__923471 this solution].}}&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|HP-48&lt;br /&gt;
|[[Pandora-X48]]&lt;br /&gt;
|2010-06-17&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,113,96 Archive]  [http://zx81.zx81.free.fr/serendipity/index.php?/categories/129-HP-48 Download]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Emulates a calculator. [http://www.gp32x.com/board/index.php?/topic/54482-x48/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Macintosh 68K&lt;br /&gt;
|Basilisk II&lt;br /&gt;
|2010-12-15&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?app=core&amp;amp;module=attach&amp;amp;section=attach&amp;amp;attach_id=512 Download]  [http://www.mediafire.com/?ue5eyole855fyul 2]&lt;br /&gt;
|dgame&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/56900-basilisk-ii-pnd-68k-macintosh-emulator/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Mattel Intellivision&lt;br /&gt;
|[[Jzintv]]&lt;br /&gt;
|2010-09-02 &lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/jzintv.inf Apps]&lt;br /&gt;
|WizardStan&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/56426-jzintv/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|MSX&lt;br /&gt;
|[[Pandora-MSX]]&lt;br /&gt;
|2010-06-26&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/msx-1.1.1.inf Apps]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|zip, gzip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54775-pandora-msx-v1-1-0/ Discussion]  {{HideableNotes|Only disk images may be gzippped, and if they are, they cannot be written to.}}&lt;br /&gt;
|- &lt;br /&gt;
|NEC PC-9801&lt;br /&gt;
|[[Xnp2]]&lt;br /&gt;
|2011-05-01&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,393 Archive]  [http://apps.openpandora.org/cgi-bin/viewapp.pl?/Emulator/xnp2.inf Apps]  [http://www.mediafire.com/?57qer2aud0e8p9y Download]&lt;br /&gt;
|quews (port)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.youtube.com/watch?v=Bd3a-duBfdU Video]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|NEC PC Engine&lt;br /&gt;
|[[Pandora HuGo]]&lt;br /&gt;
|2010-06-28&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/hugo-1.1.0.inf Apps]  [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,117 Archive]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54833-hugo-pandora-v1-1-0/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|NEC PC Engine&lt;br /&gt;
|Temper (alpha)&lt;br /&gt;
|2011-07-25&lt;br /&gt;
|[http://exophase.devzero.co.uk/temper.pnd Download]&lt;br /&gt;
|Exophase&lt;br /&gt;
|&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/4047-tutorial-how-to-save-space-on-turbo-cdpc-engine-cd-games/ ogg]&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/4621-temper-split-from-other-thread/ Discussion]  Also supports the SuperGrafx.&lt;br /&gt;
|- style=&amp;quot;background: #81BEF7&amp;quot;&lt;br /&gt;
|NES&lt;br /&gt;
|[[GPFCE]] 0.81.0.r2&lt;br /&gt;
|2012-09-30&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=package.gpfce.notaz Repo]  [http://notaz.gp2x.de/releases/gpfce/gpfce_r2.pnd mirror]&lt;br /&gt;
|notaz&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/9862-emulation-nes Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #81BEF7&amp;quot;&lt;br /&gt;
|NES&lt;br /&gt;
|[[GPFCE]]&lt;br /&gt;
|2010-05-29&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,72 Archive]  [http://apps.openpandora.org/cgi-bin/viewapp.pl?/Emulator/gpfce.inf Apps]&lt;br /&gt;
|Notaz, Pickle&lt;br /&gt;
|[[Compat:Emulator_Compatibility_-_NES | W]]&lt;br /&gt;
|zip&lt;br /&gt;
|{{HideableNotes|Sound works if you set the rate to 44000Hz in the options.  Forces a 2xsai like filter.}}&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|NES&lt;br /&gt;
|[[nesemu]]&lt;br /&gt;
|2010-05-29&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,71 Archive]  [http://apps.openpandora.org/cgi-bin/viewapp.pl?/Emulator/nesemu.inf Apps]&lt;br /&gt;
|Pickle&lt;br /&gt;
|[[Compat:Emulator_Compatibility_-_NES | W]]&lt;br /&gt;
|&lt;br /&gt;
|[http://code.google.com/p/nesemu/ Website] Seems to only run at 40fps.&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|NES&lt;br /&gt;
|[[Nestopia]]&lt;br /&gt;
|2011-08-01&lt;br /&gt;
|[http://ompldr.org/vOXB2Mg/nestopia_openpandora_streak.zip Download]&lt;br /&gt;
|StreaK&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/60112-nestopia-for-openpandora-beta/ Discussion] {{HideableNotes|Emulator focus is accuracy.  Very high compatibility at a cost of speed.  Not a PND.}}&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|Nintendo 64&lt;br /&gt;
|[[Mupen64Plus]] 1.5.r20110615.2&lt;br /&gt;
|2011-06-16&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=mupen64plus Repo]&lt;br /&gt;
|Ari64, Adventus, JayFoxRox, sebt3, et al.&lt;br /&gt;
|[http://tinyurl.com/6ccuqmc GD]&lt;br /&gt;
|zip, 7z, bzip2&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/53683-mupen64plus/page__view__findpost__p__951543 Discussion]  Compatibility list is mostly outdated. {{HideableNotes|To get good auto-frameskip, switch to gles2n64 0.0.5, set frame render rate 2, auto frameskip 1 -[http://www.gp32x.com/board/index.php?/topic/53683-mupen64plus/page__view__findpost__p__946705]}}&lt;br /&gt;
|- style=&amp;quot;background: #F78181&amp;quot;&lt;br /&gt;
|Nintendo DS&lt;br /&gt;
|[[Desmume]]&lt;br /&gt;
|2011-08-04&lt;br /&gt;
|[http://www.2shared.com/file/wxnc3MRT/desmume097.html Download]&lt;br /&gt;
[http://www.mediafire.com/?8gvvhqz3e2zkxzj 2]&lt;br /&gt;
|notaz&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/4744-nintendo-ds-emulator/page__view__findpost__p__82779 Discussion] Not meant for entertainment; was ported only to shut people up.&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|Nintendo GBA/GBC/GB&lt;br /&gt;
|[[VisualBoyAdvance]]&lt;br /&gt;
|2010-12-08&lt;br /&gt;
|[http://apps.openpandora.org/cgi-bin/viewapp.pl?/Emulator/vba-1.7.2-0.inf Apps]  [http://www.mediafire.com/?7qbxlnp0h2isokf Download]&lt;br /&gt;
|EvilDragon, SteveM&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/57808-visualboyadvance-v1-7-2-1/page__p__929521&amp;amp;#entry929521 Discussion]. Runs GB/C well; GBA is slow&lt;br /&gt;
|- style=&amp;quot;background: #81BEF7&amp;quot;&lt;br /&gt;
|Nintendo GBA&lt;br /&gt;
|[[gpSP]]&lt;br /&gt;
|2012-10-03&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=package.gpsp.notaz Repo]&lt;br /&gt;
|Exophase, notaz&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|Discussion: [http://www.gp32x.com/board/index.php?/topic/60219-gba-emulator-that-you-can-adjust-the-screen-size/page__view__findpost__p__957136 GP32X] [http://boards.openpandora.org/index.php?/topic/5226-gpsp-for-pandora-from-notaz/ OP]. Native port with fullscreen scaling.&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Nintendo GBA&lt;br /&gt;
|[[gpSP]] (Ginged)&lt;br /&gt;
|2010-10-13&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,199 Archive]&lt;br /&gt;
|Exophase, notaz&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://gpsp-dev.blogspot.com/ Website]. {{HideableNotes|Runs through [[Ginge]], only zipped ROMs.  [http://www.gp32x.com/board/index.php?/topic/58722-im-looking-for-a-gba-emulator-without-blurry-upscaling/ No fullscreen scaling].}}&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Nintendo GB/GBC&lt;br /&gt;
|[[GnuBoy]] 1.0.5Svn&lt;br /&gt;
|2010-11-10&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,207 Archive]  [http://repo.openpandora.org/?page=detail&amp;amp;app=sdlgnuboy Repo]&lt;br /&gt;
|Pickle, EvilDragon&lt;br /&gt;
|&lt;br /&gt;
|zip, gzip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/56916-gnuboy-updated/ Discussion] [http://www.gp32x.com/board/index.php?/topic/57436-gnuboy-v1-0-5-svn-released/ 2] uses [[PickleLauncher]]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Nintendo GB/GBC&lt;br /&gt;
|[[GnGB]] ('''beta''')&lt;br /&gt;
|2010-10-04&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?app=core&amp;amp;module=attach&amp;amp;section=attach&amp;amp;attach_id=482 Download]  [http://www.mediafire.com/?7qbxlnp0h2isokf 2]&lt;br /&gt;
|dgame (port)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/56886-gngb-pnd-game-boy-and-game-boy-color-emulator/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Nintendo Pokémon mini&lt;br /&gt;
|[[Pokémini]] 0.4.4&lt;br /&gt;
|2011-04-13&lt;br /&gt;
|[http://apps.openpandora.org/cgi-bin/viewapp.pl?/Emulator/pokemini.inf Apps]  [http://www.mediafire.com/?05g9s8w780mt58g Download]&lt;br /&gt;
|Wally&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/2898-pokemini-emulator-pokemon-mini Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Oric-1/Atmos&lt;br /&gt;
|[[PandOricutron]]&lt;br /&gt;
|2010-06-16&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/PandOricutron_108.inf Apps]&lt;br /&gt;
|torpor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54260-pandoricutron-1-0-8/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|PDP-11&lt;br /&gt;
|[[SIMH PDP-11]]&lt;br /&gt;
|2010-05-28&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,83 Archive]  [http://repo.openpandora.org/?page=detail&amp;amp;app=msimh.cosam.3.8.0.0 Repo]&lt;br /&gt;
|SteveM&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Philips Odyssey 2&lt;br /&gt;
|[[O2EM]] 1.18-1&lt;br /&gt;
|2010-08-21&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,186 Archive]  [http://repo.openpandora.org/?page=detail&amp;amp;app=o2em Repo]&lt;br /&gt;
|Hitnrun, Daniel Boris&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
|SAM Coupé&lt;br /&gt;
|[[SimCoupe]]&lt;br /&gt;
|2011-08-19&lt;br /&gt;
|[http://ompldr.org/vOXlsaw/simcoupe.pnd.zip Download]&lt;br /&gt;
|StreaK&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Discussion: [http://www.gp32x.com/board/index.php?/topic/60220-simcoupe-a-sam-coupe-emulator-beta/ GP32X] [http://boards.openpandora.org/index.php?/topic/4947-simcoupe-a-sam-coupe-emulator-beta/ OP]&lt;br /&gt;
|- style=&amp;quot;background: #81BEF7&amp;quot;&lt;br /&gt;
|Sega Genesis, CD, 32X, Master System&lt;br /&gt;
|[[PicoDrive]] 1.80&lt;br /&gt;
|2010-09-19&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=package.picodrive.notaz Repo]&lt;br /&gt;
|Notaz&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/56713-picodrive-1-80/ Discussion] ([http://www.gp32x.com/board/index.php?/topic/53899-picodrive-released/ old]). {{HideableNotes|Master System support is preliminary. Not all 32X games run.}}&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Sega Master System &amp;amp; Game Gear&lt;br /&gt;
|[[Dega]] v1.16-4&lt;br /&gt;
|2010-08-15&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=dega.cosam.1.16.0.2 Repo]&lt;br /&gt;
|SteveM&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54914-dega/ Discussion]{{HideableNotes|Press R+number to save, L+number to load, Pandora key to quit}}&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Sega Master System&lt;br /&gt;
|PSMS v0.1&lt;br /&gt;
|2009-04-03&lt;br /&gt;
|[http://www.pandorasource.de/download.php?view.10 Download]&lt;br /&gt;
|cpasjuste&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #F7BE81&amp;quot;&lt;br /&gt;
|Sega Saturn&lt;br /&gt;
|Yabause r2660&lt;br /&gt;
|2011-08-06&lt;br /&gt;
|[http://hotfile.com/dl/126054899/6ca83f7/yabause-r2660.pnd.html Download]  [http://www.mediafire.com/?fmbn5ij2t3mucjh 2]&lt;br /&gt;
|Ari64&lt;br /&gt;
|[https://spreadsheets.google.com/spreadsheet/ccc?key=0Aq4SN3wYVIxgdHB4Z2hHcE9fQ3lTaTVMelEyZVBsVFE GD]&lt;br /&gt;
|&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/4583-yabause/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Sega Genesis&lt;br /&gt;
|DGen/SDL 1.30 Alpha Build 2&lt;br /&gt;
|2012-05-25&lt;br /&gt;
|[http://www.sendspace.com/file/a8af4p Download]&lt;br /&gt;
|Kazuki&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|SNES&lt;br /&gt;
|[[SNES9X4P]] 1.39ff - v20111205-2&lt;br /&gt;
|2011-12-06&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=snes9x4p_ivanovic Repo]&lt;br /&gt;
|HideableNotes|Ivanovic, Skeezix, SiENcE (Dingoo)&lt;br /&gt;
|&lt;br /&gt;
|7z&lt;br /&gt;
|Dingoo Snes9x port. [http://www.gp32x.com/board/index.php?/topic/55378-snes9x4d4p-another-new-build-now-with-hi-res-and-new-rom-picker/page__view__findpost__p__958887] uses [[PickleLauncher]]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|SNES&lt;br /&gt;
|SNES9X v0.2&lt;br /&gt;
|2009-04-03&lt;br /&gt;
|[http://www.pandorasource.de/download.php?view.7 Download]&lt;br /&gt;
|cpasjuste (port)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|SNES&lt;br /&gt;
|[[PocketSNES]] ('''beta''') 0.1&lt;br /&gt;
|2010-08-08&lt;br /&gt;
|[http://www.rangelreale.com/pandora/pocketsnes_hack_0.1.pnd Download]&lt;br /&gt;
|Hitnrun (port)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/55796-pocketsnes-hack/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #81BEF7&amp;quot;&lt;br /&gt;
|SNK Neo Geo&lt;br /&gt;
|[[GnGeo]] 0.8.3&lt;br /&gt;
|2011-04-20&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=gngeopnd-pepone Repo]&lt;br /&gt;
|Pepone, Manolis&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|Discussion: [http://www.gp32x.com/board/index.php?/topic/59207-gngeo-0-8-2/page__view__findpost__p__946739 GP32X] [http://boards.openpandora.org/index.php?/topic/2936-gngeo-083/ OP]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|SNK Neo Geo&lt;br /&gt;
|NeoGeo SDL&lt;br /&gt;
|2009-04-03&lt;br /&gt;
|[http://www.pandorasource.de/download.php?view.13 Download]&lt;br /&gt;
|Cpasjuste&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SNK NeoGeo Pocket&lt;br /&gt;
|NeoPop&lt;br /&gt;
|2010-07-15&lt;br /&gt;
|[http://www.pdroms.de/files/1969/ Download]&lt;br /&gt;
|Cpasjuste&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/58848-neopop-ngpc-emulator-released/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|SNK Neo Geo Pocket&lt;br /&gt;
|[[Race]]&lt;br /&gt;
|2010-06-20&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/race10.inf Apps]&lt;br /&gt;
|Hooka&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54187-race-a-neo-geo-pocket-color-emulator Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #F7BE81&amp;quot;&lt;br /&gt;
|Sony Playstation&lt;br /&gt;
|[[PSX4Pandora]]&lt;br /&gt;
|2010-11-16&lt;br /&gt;
|[http://www.zodttd.com/downloads/psx4pandora10b5.pnd Download]&lt;br /&gt;
|ZodTTD&lt;br /&gt;
|[http://spreadsheets.google.com/pub?key=0AkBB6e4g1lGtdFVwODhsQzdlWVdrMTRKdDFXa1laZ2c&amp;amp;hl=en_GB&amp;amp;output=html GD]&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/57522-psx4pandora-1-0b5/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Sony Playstation&lt;br /&gt;
|[[PCSX-ReARMed]]&lt;br /&gt;
|2012-11-24&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=package.pcsx_rearmed.notaz Repo] [http://notaz.gp2x.de/releases/pcsxr/pcsx_rearmed_r17.pnd mirror]&lt;br /&gt;
|notaz&lt;br /&gt;
|[https://spreadsheets.google.com/ccc?key=0ArSWWAWRjErldHZVZlFxY0tBVnRRNXM5U3ZqWFNuN0E&amp;amp;hl=en#gid=0 GD]&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/4046-tutorial-how-to-save-space-on-ps1-games-without-ripping-video-or-music/ pbp]&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/6546-pcsx-rearmed-r13-with-a-new-gpu/ Discussion] [http://www.gp32x.com/board/index.php?/topic/57973-pcsx-rearmed/page__view__findpost__p__955679 old thread]&lt;br /&gt;
|- &lt;br /&gt;
|Thomson TO8D&lt;br /&gt;
|[[TO8_PND]]&lt;br /&gt;
|2011-11-15&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=TO8D_PND Repo]&lt;br /&gt;
|SladeCraven&lt;br /&gt;
|&lt;br /&gt;
|None&lt;br /&gt;
|Emulates the Thomson TO8/TO8D computer. [http://boards.openpandora.org/index.php?/topic/6076-thomson-to8-emulator-beta-version-040/page__fromsearch__1 Discussion]&lt;br /&gt;
|- &lt;br /&gt;
|TI89/TI89 Titanium / TI92/TI92+ / V200PLT&lt;br /&gt;
|[[TiEmu]]&lt;br /&gt;
|2011-09-10&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=tiemu-6232 Repo]&lt;br /&gt;
|Kazuki&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Emulates a calculator.&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|TI-99&lt;br /&gt;
|Pandora-TI99 ([[TI99Sim]])&lt;br /&gt;
|2010-07-21&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,164 Archive]  [http://zx81.zx81.free.fr/serendipity/index.php?/categories/147-TI99 Download]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TI-92&lt;br /&gt;
|[[XTiger]]&lt;br /&gt;
|2010-06-30&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/ti92-1.1.0.inf Apps]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Emulates a calculator.&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|TRS-80&lt;br /&gt;
|[[SDLTRS]]&lt;br /&gt;
|2011-08-03&lt;br /&gt;
|[http://www.mediafire.com/download.php?72etxpjqaosa11b Download]&lt;br /&gt;
|Blue Protoman&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|I give no support to this!  This is a hackjob port!&lt;br /&gt;
|- style=&amp;quot;background: #81BEF7&amp;quot;&lt;br /&gt;
|Vectrex&lt;br /&gt;
|[[Pandora-Vectrex]] v1.1.1&lt;br /&gt;
|2011-03-06&lt;br /&gt;
|[http://zx81.zx81.free.fr/public/pandora/vectrex/pandora-vectrex-v1.1.1-pnd.zip Download]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/58846-pandora-vectrex-vectrex-emulator-for-pandora-v110/page__view__findpost__p__942010 Discussion] Download game overlays [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,5,355 here].&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|x86 DOS&lt;br /&gt;
|[[DOSBox]] v0.74svn&lt;br /&gt;
|2010-11-09&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,54 Archive]&lt;br /&gt;
|Pickle&lt;br /&gt;
|[[DOSBox compatibility list|W]]&lt;br /&gt;
|None&lt;br /&gt;
|Discussion: [http://www.gp32x.com/board/index.php?/topic/57424-dosbox/ GP32Xa] [http://www.gp32x.com/board/index.php?/topic/53942-post-your-dosbox-successes-here/ GP32Xb] [http://boards.openpandora.org/index.php?/topic/2346-dosbox-room-for-optimization/ OPa] [http://boards.openpandora.org/index.php?/topic/2063-dosbox/ OPb]. [http://www.dosbox.com/comp_list.php General compatibility list]&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|x86 DOS&lt;br /&gt;
|[[DOSBox EX]]&lt;br /&gt;
|2011-08-16&lt;br /&gt;
|[http://ompldr.org/vOXhhMA/dosbox_ex.pnd.zip Download]&lt;br /&gt;
|StreaK&lt;br /&gt;
|&lt;br /&gt;
|None&lt;br /&gt;
|Discussion: [http://www.gp32x.com/board/index.php?/topic/60175-dosbox-ex-beta/ GP32X] [http://boards.openpandora.org/index.php?/topic/4855-dosbox-ex/ OP]&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|x86 PC&lt;br /&gt;
|[[Qemu for Pandora]]&lt;br /&gt;
|2012-03-02&lt;br /&gt;
|[http://www.openpandora.org/rebirth/qemu.pnd Download]&lt;br /&gt;
|IngoReis, mcobit&lt;br /&gt;
|&lt;br /&gt;
|None&lt;br /&gt;
|Discussion: [http://boards.openpandora.org/index.php?/topic/7004-qemu-for-pandora-for-rebirth-competition OP-Boards]&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|x86 Windows 3.1 r2, r1&lt;br /&gt;
|[[WinBox]] ('''beta''')&lt;br /&gt;
|2010-12-15&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=winbox-1 Repo]  [http://urjaman.dyndns.info/winbox_r2.pnd Download]&lt;br /&gt;
|urjaman&lt;br /&gt;
|&lt;br /&gt;
|None&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54985-win-3-1-via-dosbox-at-native-resolution/page__view__findpost__p__887198 Discussion] {{HideableNotes|Modified DOSBox to run Windows 3.1 at Pandora's native resolution}}&lt;br /&gt;
|-&lt;br /&gt;
|ZX-80 &amp;amp; ZX-81&lt;br /&gt;
|sz81&lt;br /&gt;
|2011-08-19&lt;br /&gt;
|[http://ompldr.org/vOXk0eA/sz81.pnd.zip Download]&lt;br /&gt;
|StreaK&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|ZX Spectrum&lt;br /&gt;
|[[Fuse]]&lt;br /&gt;
|2010-06-24&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/fuse-0.9.0.inf Apps]  [http://repo.openpandora.org/?page=detail&amp;amp;app=fuse.cosam.0.10.0.2 Repo]&lt;br /&gt;
|SteveM&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|ZX Spectrum&lt;br /&gt;
|[[Zx Pandy]] v3.2.1.4&lt;br /&gt;
|2011-04-12&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=zx_pandy.dave18.001 Repo]&lt;br /&gt;
|Dave18&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/58536-zx-pandy-released/ Discussion]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; &amp;quot;C&amp;quot; is short for compatibility list.&lt;br /&gt;
FT = Forum Topic&lt;br /&gt;
GD = Google Docs&lt;br /&gt;
W = Wiki page&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; &amp;quot;CS&amp;quot; is short for &amp;quot;Compression Support&amp;quot;.  The entries denote the formats that can be used to save space on the games.  A blank entry doesn't mean &amp;quot;none&amp;quot;, it means there's not enough info!  Please add more if you can!&lt;br /&gt;
&lt;br /&gt;
==Unreleased emulators==&lt;br /&gt;
This section includes both emulators that are actively being worked on, as well as ones that are or may be abandoned. The latter are included for historical purposes. &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse; text-align: center; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
!Emulated System&lt;br /&gt;
!Project Name&lt;br /&gt;
!Last Update&lt;br /&gt;
!Status&lt;br /&gt;
!Author/Port Author&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|Acorn BBC Micro&lt;br /&gt;
|BeebEm&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/1094-bbc-emulation-merged-thread/page__st__20#entry147214 2012-05-12]&lt;br /&gt;
|PND, two working builds&lt;br /&gt;
| [http://wiki.gp2x.org/wiki/BeebEm Authors], PND by [http://sam.nipl.net/ sswam]&lt;br /&gt;
|[http://pandoria.org/pnd/beebem.pnd PND] [http://repo.openpandora.org/?page=detail&amp;amp;app=beebem-15428 Repo] [http://boards.openpandora.org/index.php?/topic/1094-bbc-emulation-merged-thread/ Discussion] [http://www.gp32x.com/board/index.php?/topic/43489-beebem-for-gp2x-06-bbc-micro-emulator GP2X]&lt;br /&gt;
|-&lt;br /&gt;
|Amstrad PCW&lt;br /&gt;
|Joyce / Anne emu&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/4939-any-amstrad-pcw-lovers-in-da-house/page__view__findpost__p__85612 2011-08-18]&lt;br /&gt;
|Abandoned&lt;br /&gt;
|StreaK&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/4939-any-amstrad-pcw-lovers-in-da-house/ Discussion]  Discontinued: StreaK left the community.&lt;br /&gt;
|-&lt;br /&gt;
|Sega Dreamcast&lt;br /&gt;
|NullDC&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/57821-dreamcast/page__view__findpost__p__944843 2011-03-28]&lt;br /&gt;
|On hold&lt;br /&gt;
|Zezu / drkIIraziel&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?s=&amp;amp;showtopic=47065&amp;amp;view=findpost&amp;amp;p=709910] drkIIraziel says he will have time to work on it &amp;quot;[http://www.gp32x.com/board/index.php?/topic/57821-dreamcast/page__view__findpost__p__944843 after April 10]&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Nintendo SNES&lt;br /&gt;
|[[PandaSNES]]&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/43213-any-snes-fans-in-the-house/page__view__findpost__p__631020 2008-07-29]&lt;br /&gt;
|Abandoned&lt;br /&gt;
|Squidge&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?showtopic=43213]  Probably discontinued; Squidge has not been heard from for a long time.&lt;br /&gt;
|-&lt;br /&gt;
|Sony Playstation Portable&lt;br /&gt;
|Pandora-PSP&lt;br /&gt;
|[http://jannikvogel.de/2011 2011-01]&lt;br /&gt;
|Abandoned&lt;br /&gt;
|[[User:JayFoxRox|JayFoxRox]]&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?showtopic=47270]  Probably discontinued; JayFoxRox has since left the community.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
*[http://sebt3.openpandora.org/pnd/ Releases by sebt3]&lt;br /&gt;
*[http://www.hermocom.com/en/downloads/openpandora/ Releases by Hermocom]&lt;br /&gt;
*[http://rebirthofxeen.com/files/pandora/ Releases by WizardStan]&lt;br /&gt;
*[http://www.stuckiegamez.co.uk/apps/pandora/ Releases by StuckieGamez]&lt;br /&gt;
&lt;br /&gt;
===Forums===&lt;br /&gt;
The following community forums are checked when updating this page:&lt;br /&gt;
*From GP32X: [http://www.gp32x.com/board/index.php?/forum/63-news-zone-pandora/ News Zone], [http://www.gp32x.com/board/index.php?/forum/71-beta-testing-pandora/ Beta Testing] and [http://www.gp32x.com/board/index.php?/forum/64-developers-corner-pandora/ Developer's Corner]&lt;br /&gt;
*From OP: [http://boards.openpandora.org/index.php?/forum/26-software-news/ Software News] and [http://boards.openpandora.org/index.php?/forum/10-beta-testing/ Beta Testing]&lt;br /&gt;
*From GP2X.de: [http://forum.gp2x.de/viewforum.php?f=24 News] and [http://forum.gp2x.de/viewforum.php?f=59 Betatest]&lt;br /&gt;
&lt;br /&gt;
[[Category:Emulators]]&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
[[Category:List]]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Emulator_List&amp;diff=26327</id>
		<title>Emulator List</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Emulator_List&amp;diff=26327"/>
		<updated>2012-11-25T19:40:14Z</updated>

		<summary type="html">&lt;p&gt;Notaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''These lists were last updated on 2012-06-13 to include the latest files from the [http://repo.openpandora.org/ Repo], the [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,5 File Archive], [http://apps.open-pandora.org/cgi-bin/viewarea.pl?Emulators Pandora Apps], and the [[Emulator list#Forums|community forums]]. For other software lists on the wiki, see [[Software projects]] and [[Games]].''&lt;br /&gt;
&lt;br /&gt;
If different versions of an [[emulator]] were released, the listed &amp;quot;release date&amp;quot; is from the most recent one.&lt;br /&gt;
&lt;br /&gt;
Please click on the little squares to sort by different categories.&lt;br /&gt;
&lt;br /&gt;
To read a usage guide for several emulators, download [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,5,404 this guide].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Released emulators==&lt;br /&gt;
&lt;br /&gt;
Entry colors only denote compatibility and speed; interface and features are not taken into account.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; text-align: center;&amp;quot;&lt;br /&gt;
!Quality&lt;br /&gt;
!Description&lt;br /&gt;
|- style=&amp;quot;background: #81BEF7&amp;quot;&lt;br /&gt;
|Perfect&lt;br /&gt;
|Emulators with a '''blue''' background, for all intents and purposes, work perfectly.  Virtually every game runs at full speed, and ones that don't come close.  No overclocking required.  Practically no compatibility issues, with the possible exception of extremely obscure hardware tricks or addons.&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Fantastic&lt;br /&gt;
|Emulators with a '''green''' background work very well.  A lot of games run great at or close to 500Mhz, though some issues do exist.  Little overclocking is required.  Compatibility issues are minimum.&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|Decent&lt;br /&gt;
|Emulators with a '''yellow''' background have issues.  Some games are playable, and a few do run full speed, but overclocking is typically needed.  Compatibility issues may be considerable.  This could also represent emulators with great compatibility, but low speed (or vice versa).&lt;br /&gt;
|- style=&amp;quot;background: #F7BE81&amp;quot;&lt;br /&gt;
|Bad&lt;br /&gt;
|Emulators with an '''orange''' background do not run well.  Few games are playable.  Overclocking is mandatory.  There may be lots of compatibility issues as well.&lt;br /&gt;
|- style=&amp;quot;background: #F78181&amp;quot;&lt;br /&gt;
|Poor&lt;br /&gt;
|Emulators with a '''red''' background are worthless.  No games are playable at 500Mhz, and you have to overclock very high to see a difference.  Full speed is out of the question.  Compatibility is likely nonexistent.  This is test release territory.&lt;br /&gt;
|-&lt;br /&gt;
|N/A&lt;br /&gt;
|Emulators with a '''white''' background do not have enough information about them.  Please try them out and add to this page!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- To add a color to an entry, simple replace &amp;quot;#xxxxxx&amp;quot; with these numbers;&lt;br /&gt;
Blue: #81BEF7&lt;br /&gt;
Green: #90FF90&lt;br /&gt;
Yellow: #F3F781&lt;br /&gt;
Orange: #F7BE81&lt;br /&gt;
Red: #F78181&lt;br /&gt;
Leave it at #xxxxxx for white; invalid values do not change color. --&amp;gt;&lt;br /&gt;
''If you have tried an emulator which has an uncoloured background, please add the appropriate background colour based on the legend to reflect the status of the emulator.  You may add a statement in the notes if you feel that it's necessary.''&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse; text-align: center; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
! Emulated System&lt;br /&gt;
! Project Name&lt;br /&gt;
! Release Date &amp;lt;small&amp;gt;(YYYY-MM-DD)&amp;lt;/small&amp;gt;&lt;br /&gt;
! Download&lt;br /&gt;
! Authored or Ported By&lt;br /&gt;
! &amp;lt;span title=&amp;quot;Compatibility List&amp;quot;&amp;gt;C&amp;lt;/span&amp;gt;&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
! &amp;lt;span title=&amp;quot;Compression Support&amp;quot;&amp;gt;CS&amp;lt;/span&amp;gt;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&lt;br /&gt;
! Notes&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Various{{HideableNotes|&amp;lt;br/&amp;gt;Atari Lynx, Bandai Wonderswan, GBA, GB/C, Sega Game Gear, Sega Master System, PC Engine/CD, NES, Virtual Boy, Neo Geo Pocket Colour}}&lt;br /&gt;
|Mednafen 0.9.17.r3&lt;br /&gt;
|2011-07-13&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=package.mednafen-pandora.r3 Repo]&lt;br /&gt;
|pder&lt;br /&gt;
|&lt;br /&gt;
|zip, [http://boards.openpandora.org/index.php?/topic/4047-tutorial-how-to-save-space-on-turbo-cdpc-engine-cd-games/ ogg]&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/59533-mednafen-0-9-17-1-wip/page__gopid__950099&amp;amp;#entry950099 Discussion]  GBA and VB don't run fullspeed.&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Acorn RISC-PC&lt;br /&gt;
|[[pandrpcemu]] ('''beta''')&lt;br /&gt;
|2011-05-28&lt;br /&gt;
|[http://www.pokenet.co.uk/misc/files.pandora/pandrpcemu.pnd Download]  [http://repo.openpandora.org/?page=detail&amp;amp;app=pandrpcemu Repo]&lt;br /&gt;
|hideki&lt;br /&gt;
|&lt;br /&gt;
|None&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/3762-pandrpcemu-beta-acorn-risc-pc/ Discussion]&amp;lt;br /&amp;gt;Also available natively (32-bit RO5) under [[Software projects#Unreleased software (&amp;quot;Projects Under Development&amp;quot;)|Software projects]]&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Amiga 500 / Amiga 1200&lt;br /&gt;
|[[UAE4ALL]] V2.0&lt;br /&gt;
|2012-06-13&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=uae4all Main version]&lt;br /&gt;
|John4p, Pickle, Notaz, tuki_cat, et al.&lt;br /&gt;
|[http://spreadsheets.google.com/pub?key=0AuBR5X_s_5_idG92ZVQ5cEs4ZEhYTm5sSjFIcl83U2c&amp;amp;hl=en&amp;amp;gid=0 GD]&lt;br /&gt;
|gzip&lt;br /&gt;
|&amp;quot;UAE4All 2.0 only works with FAME/C core. Cyclone and UAE core are not compatible.&lt;br /&gt;
Thus UAE4All 2.0 replaces the old FAME/C release. The old Cyclone and UAE core releases are still available in this release (but they're still UAE4All 1.1 and won't see new features). [http://boards.openpandora.org/index.php?/topic/8770-uae4all-20/ Discussion]  {{HideableNotes|}}&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|Amiga 1200&lt;br /&gt;
|[[P-UAE]]&lt;br /&gt;
|2010-06-06&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/puae.inf Apps] [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,86 Archive]&lt;br /&gt;
|Gnostic&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|Amiga&lt;br /&gt;
|[[pandeuae]] ('''beta''')&lt;br /&gt;
|2011-05-09&lt;br /&gt;
|[http://www.hidnet.org.uk/pandeuae.pnd Download]&lt;br /&gt;
|hideki&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/3350-euae-port/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #81BEF7&amp;quot;&lt;br /&gt;
|Amstrad CPC&lt;br /&gt;
|[[Pandora-CAP32]]&lt;br /&gt;
|2010-06-27&lt;br /&gt;
|[http://zx81.zx81.free.fr/public/pandora/cap32/pandora-cap32-v1.1.0-bin.zip Download] [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,115 Archive]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|gzip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54801-pandora-cap32-v1-1-0/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Apple II&lt;br /&gt;
|[[LinApple]] 1.3.5.0&lt;br /&gt;
|2011-09-13&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=linapple-jerryblade-042011 Repo]&lt;br /&gt;
|JerryBlade, CFWhitman&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Discussion: [http://www.gp32x.com/board/index.php?/topic/59229-apple-emulator-for-pandora/page__view__findpost__p__957512 GP32X] [http://boards.openpandora.org/index.php?/topic/2490-apple-ii-emulator/ OP]&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Arcade (laserdisc)&lt;br /&gt;
|[[Daphne]] v1.0.0.3 &lt;br /&gt;
|2011-08-14&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=daphne-daphne-25097 Repo]&lt;br /&gt;
|mcobit&lt;br /&gt;
|&lt;br /&gt;
|[http://winff.org/html_new/ Bitrate]&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/4852-daphne-wip/ Discussion]  {{HideableNotes|Use [http://winff.org/html_new/ WinFF] to re-encode your video files to a lower bitrate if necessary, as doing so will improve speed and shrink the file.  Faster SD cards also improve speed greatly.}}&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|Arcade&lt;br /&gt;
|[[MAME]] v0.106 &lt;br /&gt;
|2010-05-29&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/mame106.pnd.inf Apps]  [http://repo.openpandora.org/?page=detail&amp;amp;app=mame.cosam.106 Repo]&lt;br /&gt;
|SteveM&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|{{HideableNotes|Runs more games than MAME4ALL, but at a slower speed.}}&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Arcade&lt;br /&gt;
|[[MAME4All]] v2.5b7&lt;br /&gt;
|2010-09-07&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,73,200 Archive]  [http://repo.openpandora.org/?page=detail&amp;amp;app=mame4all.cosam.2.5-beta7 Repo]&lt;br /&gt;
|SteveM, Franxis&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/56188-mame4all-beta/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Arcade&lt;br /&gt;
|SDLMAME v.110&lt;br /&gt;
|2010-06-30&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,73,106 Archive]&lt;br /&gt;
|?&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|Use MAME4ALL instead, this is slow.&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Atari 520&lt;br /&gt;
|PAtari v0.1&lt;br /&gt;
|2009-04-03&lt;br /&gt;
|[http://www.pandorasource.de/download.php?view.4 Download]&lt;br /&gt;
|cpasjuste&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
|Atari 800&lt;br /&gt;
|Atari800&lt;br /&gt;
|2011-08-06&lt;br /&gt;
|[http://ompldr.org/vOXUxYQ/atari800.pnd.zip Download]&lt;br /&gt;
|StreaK&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/60165-atari-800-emulator-almost-final/ Discussion]  {{HideableNotes|Emulates the 800, 800XL, 130XE, and 5200 platforms.}}&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Atari 8-Bit&lt;br /&gt;
|Pandora-Atari&lt;br /&gt;
|2010-08-04&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/atari-1.1.0.inf Apps]  [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,173 Archive]  &lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/55724-pandora-atari-atari-8001305200-emulator-for-pandora-v110/ Discussion] {{HideableNotes|Emulates the 800, 800XL, 130XE, and 5200 platforms.}}&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Atari Lynx&lt;br /&gt;
|[[Handy]]&lt;br /&gt;
|2010-06-18&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=handy.cosam.0.5.0.0 Repo]&lt;br /&gt;
|SteveM&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54220-handy/ Discussion]  {{HideableNotes|Do not turn on the FPS counter, or else the emulator will slow down dramatically.}}&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Atari ST&lt;br /&gt;
|Hatari 1.0.3.2&lt;br /&gt;
|2011-08-02&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=hatari.skeezix.pkg Repo]&lt;br /&gt;
|Skeezix&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/58088-hatari-atari-st-emu-140-released/page__view__findpost__p__934671 Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Atari VCS 2600&lt;br /&gt;
|[[Stella]]&lt;br /&gt;
|2010-05-07&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/Stella312a.inf Apps]  [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,53 Archive]&lt;br /&gt;
|Skeezix&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Atari VCS 2600&lt;br /&gt;
|Pandora-2600 ([[Stella]])&lt;br /&gt;
|2010-07-11&lt;br /&gt;
|[http://zx81.zx81.free.fr/public/pandora/2600/pandora-2600-v1.1.0-pnd.zip Download]  [http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/2600-1.1.0.inf Apps]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54934-pandora-2600-atari-2600-emulator-for-pandora-v110/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Atari VCS 2600&lt;br /&gt;
|[[Stella]] &lt;br /&gt;
|2011-08-03&lt;br /&gt;
|[http://ompldr.org/vOXF0dQ/stella.pnd Download]&lt;br /&gt;
|StreaK&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/60123-stella-atari-2600-beta-in-pnd/ Discussion]. {{HideableNotes|PAL games don't run.}}&lt;br /&gt;
|-&lt;br /&gt;
|Atari VCS 2600&lt;br /&gt;
|[[Stella]] 3.4.2.2&lt;br /&gt;
|2011-10-06&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=stella-svn Repo]&lt;br /&gt;
|Lomaxx&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Atari VCS 7800&lt;br /&gt;
|Pandora-7800 v1.1.0&lt;br /&gt;
|2010-07-11&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,146 Archive]  [http://zx81.zx81.free.fr/public/pandora/7800/pandora-7800-v1.1.0-pnd.zip Download]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/55189-pandora-7800-atari-7800-emulator-for-pandora-v110/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Colecovision&lt;br /&gt;
|[[Colem]]&lt;br /&gt;
|2010-05-29&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/colem_alpha.inf Apps]  [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,70 Archive]  [http://repo.openpandora.org/?page=detail&amp;amp;app=colem.skeezix Repo]&lt;br /&gt;
|Skeezix&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Colecovision&lt;br /&gt;
|[[Pandora Colem]]&lt;br /&gt;
|2010-06-30&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/colem-1.1.0.inf Apps]  [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,129 Archive]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/60164-colem-port-of-zx81-slightly-modified/ Discussion for modified version (no PND)]&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Commodore 64&lt;br /&gt;
|[[Vice]]&lt;br /&gt;
|2010-03-25&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/ViceX64.inf Apps] [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,46 Archive]&lt;br /&gt;
|Pickle&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|{{HideableNotes|Very good emulation, deactivate wrap mode in speed seetings if you suffer sound problems}}&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Commodore (Other)&lt;br /&gt;
|[[Vice]]&lt;br /&gt;
|2010-03-25&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/ViceMisc.inf Apps] [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,47 Archive]&lt;br /&gt;
|Pickle&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|{{HideableNotes|Emulates the CBM2, C128, PET, Plus4, and VIC platforms.}}&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|GPH GP2X/Wiz&lt;br /&gt;
|[[Ginge]]&lt;br /&gt;
|2010-08-16&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=package.ginge.notaz Repo]&lt;br /&gt;
|Notaz&lt;br /&gt;
|&lt;br /&gt;
|None&lt;br /&gt;
|{{HideableNotes|Not really an emulator. [http://www.gp32x.com/board/index.php?/topic/55980-ginge/page__view__findpost__p__913442 DO NOT run from root].  To get rid of the default blur filter, use [http://www.gp32x.com/board/index.php?/topic/57179-pandora-emulators-vs-gp2xwiz-emulators/page__view__findpost__p__923471 this solution].}}&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|HP-48&lt;br /&gt;
|[[Pandora-X48]]&lt;br /&gt;
|2010-06-17&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,113,96 Archive]  [http://zx81.zx81.free.fr/serendipity/index.php?/categories/129-HP-48 Download]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Emulates a calculator. [http://www.gp32x.com/board/index.php?/topic/54482-x48/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Macintosh 68K&lt;br /&gt;
|Basilisk II&lt;br /&gt;
|2010-12-15&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?app=core&amp;amp;module=attach&amp;amp;section=attach&amp;amp;attach_id=512 Download]  [http://www.mediafire.com/?ue5eyole855fyul 2]&lt;br /&gt;
|dgame&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/56900-basilisk-ii-pnd-68k-macintosh-emulator/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Mattel Intellivision&lt;br /&gt;
|[[Jzintv]]&lt;br /&gt;
|2010-09-02 &lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/jzintv.inf Apps]&lt;br /&gt;
|WizardStan&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/56426-jzintv/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|MSX&lt;br /&gt;
|[[Pandora-MSX]]&lt;br /&gt;
|2010-06-26&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/msx-1.1.1.inf Apps]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|zip, gzip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54775-pandora-msx-v1-1-0/ Discussion]  {{HideableNotes|Only disk images may be gzippped, and if they are, they cannot be written to.}}&lt;br /&gt;
|- &lt;br /&gt;
|NEC PC-9801&lt;br /&gt;
|[[Xnp2]]&lt;br /&gt;
|2011-05-01&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,393 Archive]  [http://apps.openpandora.org/cgi-bin/viewapp.pl?/Emulator/xnp2.inf Apps]  [http://www.mediafire.com/?57qer2aud0e8p9y Download]&lt;br /&gt;
|quews (port)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.youtube.com/watch?v=Bd3a-duBfdU Video]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|NEC PC Engine&lt;br /&gt;
|[[Pandora HuGo]]&lt;br /&gt;
|2010-06-28&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/hugo-1.1.0.inf Apps]  [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,117 Archive]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54833-hugo-pandora-v1-1-0/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|NEC PC Engine&lt;br /&gt;
|Temper (alpha)&lt;br /&gt;
|2011-07-25&lt;br /&gt;
|[http://exophase.devzero.co.uk/temper.pnd Download]&lt;br /&gt;
|Exophase&lt;br /&gt;
|&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/4047-tutorial-how-to-save-space-on-turbo-cdpc-engine-cd-games/ ogg]&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/4621-temper-split-from-other-thread/ Discussion]  Also supports the SuperGrafx.&lt;br /&gt;
|- style=&amp;quot;background: #81BEF7&amp;quot;&lt;br /&gt;
|NES&lt;br /&gt;
|[[GPFCE-GP2X]]&lt;br /&gt;
|2010-10-13&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,224 Archive]  [http://repo.openpandora.org/?page=detail&amp;amp;app=gpfcegp2x Repo]&lt;br /&gt;
|notaz&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|{{HideableNotes|The GP2X version of GPFCE, packaged into a PND with Ginge.}}&lt;br /&gt;
|- style=&amp;quot;background: #81BEF7&amp;quot;&lt;br /&gt;
|NES&lt;br /&gt;
|[[GPFCE]]&lt;br /&gt;
|2010-05-29&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,72 Archive]  [http://apps.openpandora.org/cgi-bin/viewapp.pl?/Emulator/gpfce.inf Apps]&lt;br /&gt;
|Notaz, Pickle&lt;br /&gt;
|[[Compat:Emulator_Compatibility_-_NES | W]]&lt;br /&gt;
|zip&lt;br /&gt;
|{{HideableNotes|Sound works if you set the rate to 44000Hz in the options.  Forces a 2xsai like filter.}}&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|NES&lt;br /&gt;
|[[nesemu]]&lt;br /&gt;
|2010-05-29&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,71 Archive]  [http://apps.openpandora.org/cgi-bin/viewapp.pl?/Emulator/nesemu.inf Apps]&lt;br /&gt;
|Pickle&lt;br /&gt;
|[[Compat:Emulator_Compatibility_-_NES | W]]&lt;br /&gt;
|&lt;br /&gt;
|[http://code.google.com/p/nesemu/ Website] Seems to only run at 40fps.&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|NES&lt;br /&gt;
|[[Nestopia]]&lt;br /&gt;
|2011-08-01&lt;br /&gt;
|[http://ompldr.org/vOXB2Mg/nestopia_openpandora_streak.zip Download]&lt;br /&gt;
|StreaK&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/60112-nestopia-for-openpandora-beta/ Discussion] {{HideableNotes|Emulator focus is accuracy.  Very high compatibility at a cost of speed.  Not a PND.}}&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|Nintendo 64&lt;br /&gt;
|[[Mupen64Plus]] 1.5.r20110615.2&lt;br /&gt;
|2011-06-16&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=mupen64plus Repo]&lt;br /&gt;
|Ari64, Adventus, JayFoxRox, sebt3, et al.&lt;br /&gt;
|[http://tinyurl.com/6ccuqmc GD]&lt;br /&gt;
|zip, 7z, bzip2&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/53683-mupen64plus/page__view__findpost__p__951543 Discussion]  Compatibility list is mostly outdated. {{HideableNotes|To get good auto-frameskip, switch to gles2n64 0.0.5, set frame render rate 2, auto frameskip 1 -[http://www.gp32x.com/board/index.php?/topic/53683-mupen64plus/page__view__findpost__p__946705]}}&lt;br /&gt;
|- style=&amp;quot;background: #F78181&amp;quot;&lt;br /&gt;
|Nintendo DS&lt;br /&gt;
|[[Desmume]]&lt;br /&gt;
|2011-08-04&lt;br /&gt;
|[http://www.2shared.com/file/wxnc3MRT/desmume097.html Download]&lt;br /&gt;
[http://www.mediafire.com/?8gvvhqz3e2zkxzj 2]&lt;br /&gt;
|notaz&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/4744-nintendo-ds-emulator/page__view__findpost__p__82779 Discussion] Not meant for entertainment; was ported only to shut people up.&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|Nintendo GBA/GBC/GB&lt;br /&gt;
|[[VisualBoyAdvance]]&lt;br /&gt;
|2010-12-08&lt;br /&gt;
|[http://apps.openpandora.org/cgi-bin/viewapp.pl?/Emulator/vba-1.7.2-0.inf Apps]  [http://www.mediafire.com/?7qbxlnp0h2isokf Download]&lt;br /&gt;
|EvilDragon, SteveM&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/57808-visualboyadvance-v1-7-2-1/page__p__929521&amp;amp;#entry929521 Discussion]. Runs GB/C well; GBA is slow&lt;br /&gt;
|- style=&amp;quot;background: #81BEF7&amp;quot;&lt;br /&gt;
|Nintendo GBA&lt;br /&gt;
|[[gpSP]]&lt;br /&gt;
|2011-09-08&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=package.gpsp.notaz Repo]&lt;br /&gt;
|Exophase, notaz&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|Discussion: [http://www.gp32x.com/board/index.php?/topic/60219-gba-emulator-that-you-can-adjust-the-screen-size/page__view__findpost__p__957136 GP32X] [http://boards.openpandora.org/index.php?/topic/5226-gpsp-for-pandora-from-notaz/ OP]. Zipped ROMs only.  Now a native port with fullscreen scaling.&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Nintendo GBA&lt;br /&gt;
|[[gpSP]] (Ginged)&lt;br /&gt;
|2010-10-13&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,199 Archive]&lt;br /&gt;
|Exophase, notaz&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://gpsp-dev.blogspot.com/ Website]. {{HideableNotes|Runs through [[Ginge]], only zipped ROMs.  [http://www.gp32x.com/board/index.php?/topic/58722-im-looking-for-a-gba-emulator-without-blurry-upscaling/ No fullscreen scaling].}}&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Nintendo GB/GBC&lt;br /&gt;
|[[GnuBoy]] 1.0.5Svn&lt;br /&gt;
|2010-11-10&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,207 Archive]  [http://repo.openpandora.org/?page=detail&amp;amp;app=sdlgnuboy Repo]&lt;br /&gt;
|Pickle, EvilDragon&lt;br /&gt;
|&lt;br /&gt;
|zip, gzip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/56916-gnuboy-updated/ Discussion] [http://www.gp32x.com/board/index.php?/topic/57436-gnuboy-v1-0-5-svn-released/ 2] uses [[PickleLauncher]]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Nintendo GB/GBC&lt;br /&gt;
|[[GnGB]] ('''beta''')&lt;br /&gt;
|2010-10-04&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?app=core&amp;amp;module=attach&amp;amp;section=attach&amp;amp;attach_id=482 Download]  [http://www.mediafire.com/?7qbxlnp0h2isokf 2]&lt;br /&gt;
|dgame (port)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/56886-gngb-pnd-game-boy-and-game-boy-color-emulator/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Nintendo Pokémon mini&lt;br /&gt;
|[[Pokémini]] 0.4.4&lt;br /&gt;
|2011-04-13&lt;br /&gt;
|[http://apps.openpandora.org/cgi-bin/viewapp.pl?/Emulator/pokemini.inf Apps]  [http://www.mediafire.com/?05g9s8w780mt58g Download]&lt;br /&gt;
|Wally&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/2898-pokemini-emulator-pokemon-mini Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Oric-1/Atmos&lt;br /&gt;
|[[PandOricutron]]&lt;br /&gt;
|2010-06-16&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/PandOricutron_108.inf Apps]&lt;br /&gt;
|torpor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54260-pandoricutron-1-0-8/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|PDP-11&lt;br /&gt;
|[[SIMH PDP-11]]&lt;br /&gt;
|2010-05-28&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,83 Archive]  [http://repo.openpandora.org/?page=detail&amp;amp;app=msimh.cosam.3.8.0.0 Repo]&lt;br /&gt;
|SteveM&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Philips Odyssey 2&lt;br /&gt;
|[[O2EM]] 1.18-1&lt;br /&gt;
|2010-08-21&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,186 Archive]  [http://repo.openpandora.org/?page=detail&amp;amp;app=o2em Repo]&lt;br /&gt;
|Hitnrun, Daniel Boris&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
|SAM Coupé&lt;br /&gt;
|[[SimCoupe]]&lt;br /&gt;
|2011-08-19&lt;br /&gt;
|[http://ompldr.org/vOXlsaw/simcoupe.pnd.zip Download]&lt;br /&gt;
|StreaK&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Discussion: [http://www.gp32x.com/board/index.php?/topic/60220-simcoupe-a-sam-coupe-emulator-beta/ GP32X] [http://boards.openpandora.org/index.php?/topic/4947-simcoupe-a-sam-coupe-emulator-beta/ OP]&lt;br /&gt;
|- style=&amp;quot;background: #81BEF7&amp;quot;&lt;br /&gt;
|Sega Genesis, CD, 32X, Master System&lt;br /&gt;
|[[PicoDrive]] 1.80&lt;br /&gt;
|2010-09-19&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=package.picodrive.notaz Repo]&lt;br /&gt;
|Notaz&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/56713-picodrive-1-80/ Discussion] ([http://www.gp32x.com/board/index.php?/topic/53899-picodrive-released/ old]). {{HideableNotes|Master System support is preliminary. Not all 32X games run.}}&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Sega Master System &amp;amp; Game Gear&lt;br /&gt;
|[[Dega]] v1.16-4&lt;br /&gt;
|2010-08-15&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=dega.cosam.1.16.0.2 Repo]&lt;br /&gt;
|SteveM&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54914-dega/ Discussion]{{HideableNotes|Press R+number to save, L+number to load, Pandora key to quit}}&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Sega Master System&lt;br /&gt;
|PSMS v0.1&lt;br /&gt;
|2009-04-03&lt;br /&gt;
|[http://www.pandorasource.de/download.php?view.10 Download]&lt;br /&gt;
|cpasjuste&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #F7BE81&amp;quot;&lt;br /&gt;
|Sega Saturn&lt;br /&gt;
|Yabause r2660&lt;br /&gt;
|2011-08-06&lt;br /&gt;
|[http://hotfile.com/dl/126054899/6ca83f7/yabause-r2660.pnd.html Download]  [http://www.mediafire.com/?fmbn5ij2t3mucjh 2]&lt;br /&gt;
|Ari64&lt;br /&gt;
|[https://spreadsheets.google.com/spreadsheet/ccc?key=0Aq4SN3wYVIxgdHB4Z2hHcE9fQ3lTaTVMelEyZVBsVFE GD]&lt;br /&gt;
|&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/4583-yabause/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Sega Genesis&lt;br /&gt;
|DGen/SDL 1.30 Alpha Build 2&lt;br /&gt;
|2012-05-25&lt;br /&gt;
|[http://www.sendspace.com/file/a8af4p Download]&lt;br /&gt;
|Kazuki&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|SNES&lt;br /&gt;
|[[SNES9X4P]] 1.39ff - v20111205-2&lt;br /&gt;
|2011-12-06&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=snes9x4p_ivanovic Repo]&lt;br /&gt;
|HideableNotes|Ivanovic, Skeezix, SiENcE (Dingoo)&lt;br /&gt;
|&lt;br /&gt;
|7z&lt;br /&gt;
|Dingoo Snes9x port. [http://www.gp32x.com/board/index.php?/topic/55378-snes9x4d4p-another-new-build-now-with-hi-res-and-new-rom-picker/page__view__findpost__p__958887] uses [[PickleLauncher]]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|SNES&lt;br /&gt;
|SNES9X v0.2&lt;br /&gt;
|2009-04-03&lt;br /&gt;
|[http://www.pandorasource.de/download.php?view.7 Download]&lt;br /&gt;
|cpasjuste (port)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|SNES&lt;br /&gt;
|[[PocketSNES]] ('''beta''') 0.1&lt;br /&gt;
|2010-08-08&lt;br /&gt;
|[http://www.rangelreale.com/pandora/pocketsnes_hack_0.1.pnd Download]&lt;br /&gt;
|Hitnrun (port)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/55796-pocketsnes-hack/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #81BEF7&amp;quot;&lt;br /&gt;
|SNK Neo Geo&lt;br /&gt;
|[[GnGeo]] 0.8.3&lt;br /&gt;
|2011-04-20&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=gngeopnd-pepone Repo]&lt;br /&gt;
|Pepone, Manolis&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|Discussion: [http://www.gp32x.com/board/index.php?/topic/59207-gngeo-0-8-2/page__view__findpost__p__946739 GP32X] [http://boards.openpandora.org/index.php?/topic/2936-gngeo-083/ OP]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|SNK Neo Geo&lt;br /&gt;
|NeoGeo SDL&lt;br /&gt;
|2009-04-03&lt;br /&gt;
|[http://www.pandorasource.de/download.php?view.13 Download]&lt;br /&gt;
|Cpasjuste&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SNK NeoGeo Pocket&lt;br /&gt;
|NeoPop&lt;br /&gt;
|2010-07-15&lt;br /&gt;
|[http://www.pdroms.de/files/1969/ Download]&lt;br /&gt;
|Cpasjuste&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/58848-neopop-ngpc-emulator-released/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|SNK Neo Geo Pocket&lt;br /&gt;
|[[Race]]&lt;br /&gt;
|2010-06-20&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/race10.inf Apps]&lt;br /&gt;
|Hooka&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54187-race-a-neo-geo-pocket-color-emulator Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #F7BE81&amp;quot;&lt;br /&gt;
|Sony Playstation&lt;br /&gt;
|[[PSX4Pandora]]&lt;br /&gt;
|2010-11-16&lt;br /&gt;
|[http://www.zodttd.com/downloads/psx4pandora10b5.pnd Download]&lt;br /&gt;
|ZodTTD&lt;br /&gt;
|[http://spreadsheets.google.com/pub?key=0AkBB6e4g1lGtdFVwODhsQzdlWVdrMTRKdDFXa1laZ2c&amp;amp;hl=en_GB&amp;amp;output=html GD]&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/57522-psx4pandora-1-0b5/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Sony Playstation&lt;br /&gt;
|[[PCSX-ReARMed]] r14&lt;br /&gt;
|2012-03-04&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=package.pcsx_rearmed.notaz Repo] [http://notaz.gp2x.de/releases/pcsxr/pcsx_rearmed_r14.pnd Download]&lt;br /&gt;
|notaz&lt;br /&gt;
|[https://spreadsheets.google.com/ccc?key=0ArSWWAWRjErldHZVZlFxY0tBVnRRNXM5U3ZqWFNuN0E&amp;amp;hl=en#gid=0 GD]&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/4046-tutorial-how-to-save-space-on-ps1-games-without-ripping-video-or-music/ pbp]&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/6546-pcsx-rearmed-r13-with-a-new-gpu/ Discussion] [http://www.gp32x.com/board/index.php?/topic/57973-pcsx-rearmed/page__view__findpost__p__955679 old thread]&lt;br /&gt;
|- &lt;br /&gt;
|Thomson TO8D&lt;br /&gt;
|[[TO8_PND]]&lt;br /&gt;
|2011-11-15&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=TO8D_PND Repo]&lt;br /&gt;
|SladeCraven&lt;br /&gt;
|&lt;br /&gt;
|None&lt;br /&gt;
|Emulates the Thomson TO8/TO8D computer. [http://boards.openpandora.org/index.php?/topic/6076-thomson-to8-emulator-beta-version-040/page__fromsearch__1 Discussion]&lt;br /&gt;
|- &lt;br /&gt;
|TI89/TI89 Titanium / TI92/TI92+ / V200PLT&lt;br /&gt;
|[[TiEmu]]&lt;br /&gt;
|2011-09-10&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=tiemu-6232 Repo]&lt;br /&gt;
|Kazuki&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Emulates a calculator.&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|TI-99&lt;br /&gt;
|Pandora-TI99 ([[TI99Sim]])&lt;br /&gt;
|2010-07-21&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,164 Archive]  [http://zx81.zx81.free.fr/serendipity/index.php?/categories/147-TI99 Download]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TI-92&lt;br /&gt;
|[[XTiger]]&lt;br /&gt;
|2010-06-30&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/ti92-1.1.0.inf Apps]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Emulates a calculator.&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|TRS-80&lt;br /&gt;
|[[SDLTRS]]&lt;br /&gt;
|2011-08-03&lt;br /&gt;
|[http://www.mediafire.com/download.php?72etxpjqaosa11b Download]&lt;br /&gt;
|Blue Protoman&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|I give no support to this!  This is a hackjob port!&lt;br /&gt;
|- style=&amp;quot;background: #81BEF7&amp;quot;&lt;br /&gt;
|Vectrex&lt;br /&gt;
|[[Pandora-Vectrex]] v1.1.1&lt;br /&gt;
|2011-03-06&lt;br /&gt;
|[http://zx81.zx81.free.fr/public/pandora/vectrex/pandora-vectrex-v1.1.1-pnd.zip Download]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/58846-pandora-vectrex-vectrex-emulator-for-pandora-v110/page__view__findpost__p__942010 Discussion] Download game overlays [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,5,355 here].&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|x86 DOS&lt;br /&gt;
|[[DOSBox]] v0.74svn&lt;br /&gt;
|2010-11-09&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,54 Archive]&lt;br /&gt;
|Pickle&lt;br /&gt;
|[[DOSBox compatibility list|W]]&lt;br /&gt;
|None&lt;br /&gt;
|Discussion: [http://www.gp32x.com/board/index.php?/topic/57424-dosbox/ GP32Xa] [http://www.gp32x.com/board/index.php?/topic/53942-post-your-dosbox-successes-here/ GP32Xb] [http://boards.openpandora.org/index.php?/topic/2346-dosbox-room-for-optimization/ OPa] [http://boards.openpandora.org/index.php?/topic/2063-dosbox/ OPb]. [http://www.dosbox.com/comp_list.php General compatibility list]&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|x86 DOS&lt;br /&gt;
|[[DOSBox EX]]&lt;br /&gt;
|2011-08-16&lt;br /&gt;
|[http://ompldr.org/vOXhhMA/dosbox_ex.pnd.zip Download]&lt;br /&gt;
|StreaK&lt;br /&gt;
|&lt;br /&gt;
|None&lt;br /&gt;
|Discussion: [http://www.gp32x.com/board/index.php?/topic/60175-dosbox-ex-beta/ GP32X] [http://boards.openpandora.org/index.php?/topic/4855-dosbox-ex/ OP]&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|x86 PC&lt;br /&gt;
|[[Qemu for Pandora]]&lt;br /&gt;
|2012-03-02&lt;br /&gt;
|[http://www.openpandora.org/rebirth/qemu.pnd Download]&lt;br /&gt;
|IngoReis, mcobit&lt;br /&gt;
|&lt;br /&gt;
|None&lt;br /&gt;
|Discussion: [http://boards.openpandora.org/index.php?/topic/7004-qemu-for-pandora-for-rebirth-competition OP-Boards]&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|x86 Windows 3.1 r2, r1&lt;br /&gt;
|[[WinBox]] ('''beta''')&lt;br /&gt;
|2010-12-15&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=winbox-1 Repo]  [http://urjaman.dyndns.info/winbox_r2.pnd Download]&lt;br /&gt;
|urjaman&lt;br /&gt;
|&lt;br /&gt;
|None&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54985-win-3-1-via-dosbox-at-native-resolution/page__view__findpost__p__887198 Discussion] {{HideableNotes|Modified DOSBox to run Windows 3.1 at Pandora's native resolution}}&lt;br /&gt;
|-&lt;br /&gt;
|ZX-80 &amp;amp; ZX-81&lt;br /&gt;
|sz81&lt;br /&gt;
|2011-08-19&lt;br /&gt;
|[http://ompldr.org/vOXk0eA/sz81.pnd.zip Download]&lt;br /&gt;
|StreaK&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|ZX Spectrum&lt;br /&gt;
|[[Fuse]]&lt;br /&gt;
|2010-06-24&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/fuse-0.9.0.inf Apps]  [http://repo.openpandora.org/?page=detail&amp;amp;app=fuse.cosam.0.10.0.2 Repo]&lt;br /&gt;
|SteveM&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|ZX Spectrum&lt;br /&gt;
|[[Zx Pandy]] v3.2.1.4&lt;br /&gt;
|2011-04-12&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=zx_pandy.dave18.001 Repo]&lt;br /&gt;
|Dave18&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/58536-zx-pandy-released/ Discussion]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; &amp;quot;C&amp;quot; is short for compatibility list.&lt;br /&gt;
FT = Forum Topic&lt;br /&gt;
GD = Google Docs&lt;br /&gt;
W = Wiki page&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; &amp;quot;CS&amp;quot; is short for &amp;quot;Compression Support&amp;quot;.  The entries denote the formats that can be used to save space on the games.  A blank entry doesn't mean &amp;quot;none&amp;quot;, it means there's not enough info!  Please add more if you can!&lt;br /&gt;
&lt;br /&gt;
==Unreleased emulators==&lt;br /&gt;
This section includes both emulators that are actively being worked on, as well as ones that are or may be abandoned. The latter are included for historical purposes. &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse; text-align: center; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
!Emulated System&lt;br /&gt;
!Project Name&lt;br /&gt;
!Last Update&lt;br /&gt;
!Status&lt;br /&gt;
!Author/Port Author&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|Acorn BBC Micro&lt;br /&gt;
|BeebEm&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/1094-bbc-emulation-merged-thread/page__st__20#entry147214 2012-05-12]&lt;br /&gt;
|PND, two working builds&lt;br /&gt;
| [http://wiki.gp2x.org/wiki/BeebEm Authors], PND by [http://sam.nipl.net/ sswam]&lt;br /&gt;
|[http://pandoria.org/pnd/beebem.pnd PND] [http://repo.openpandora.org/?page=detail&amp;amp;app=beebem-15428 Repo] [http://boards.openpandora.org/index.php?/topic/1094-bbc-emulation-merged-thread/ Discussion] [http://www.gp32x.com/board/index.php?/topic/43489-beebem-for-gp2x-06-bbc-micro-emulator GP2X]&lt;br /&gt;
|-&lt;br /&gt;
|Amstrad PCW&lt;br /&gt;
|Joyce / Anne emu&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/4939-any-amstrad-pcw-lovers-in-da-house/page__view__findpost__p__85612 2011-08-18]&lt;br /&gt;
|Abandoned&lt;br /&gt;
|StreaK&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/4939-any-amstrad-pcw-lovers-in-da-house/ Discussion]  Discontinued: StreaK left the community.&lt;br /&gt;
|-&lt;br /&gt;
|Sega Dreamcast&lt;br /&gt;
|NullDC&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/57821-dreamcast/page__view__findpost__p__944843 2011-03-28]&lt;br /&gt;
|On hold&lt;br /&gt;
|Zezu / drkIIraziel&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?s=&amp;amp;showtopic=47065&amp;amp;view=findpost&amp;amp;p=709910] drkIIraziel says he will have time to work on it &amp;quot;[http://www.gp32x.com/board/index.php?/topic/57821-dreamcast/page__view__findpost__p__944843 after April 10]&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Nintendo SNES&lt;br /&gt;
|[[PandaSNES]]&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/43213-any-snes-fans-in-the-house/page__view__findpost__p__631020 2008-07-29]&lt;br /&gt;
|Abandoned&lt;br /&gt;
|Squidge&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?showtopic=43213]  Probably discontinued; Squidge has not been heard from for a long time.&lt;br /&gt;
|-&lt;br /&gt;
|Sony Playstation Portable&lt;br /&gt;
|Pandora-PSP&lt;br /&gt;
|[http://jannikvogel.de/2011 2011-01]&lt;br /&gt;
|Abandoned&lt;br /&gt;
|[[User:JayFoxRox|JayFoxRox]]&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?showtopic=47270]  Probably discontinued; JayFoxRox has since left the community.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
*[http://sebt3.openpandora.org/pnd/ Releases by sebt3]&lt;br /&gt;
*[http://www.hermocom.com/en/downloads/openpandora/ Releases by Hermocom]&lt;br /&gt;
*[http://rebirthofxeen.com/files/pandora/ Releases by WizardStan]&lt;br /&gt;
*[http://www.stuckiegamez.co.uk/apps/pandora/ Releases by StuckieGamez]&lt;br /&gt;
&lt;br /&gt;
===Forums===&lt;br /&gt;
The following community forums are checked when updating this page:&lt;br /&gt;
*From GP32X: [http://www.gp32x.com/board/index.php?/forum/63-news-zone-pandora/ News Zone], [http://www.gp32x.com/board/index.php?/forum/71-beta-testing-pandora/ Beta Testing] and [http://www.gp32x.com/board/index.php?/forum/64-developers-corner-pandora/ Developer's Corner]&lt;br /&gt;
*From OP: [http://boards.openpandora.org/index.php?/forum/26-software-news/ Software News] and [http://boards.openpandora.org/index.php?/forum/10-beta-testing/ Beta Testing]&lt;br /&gt;
*From GP2X.de: [http://forum.gp2x.de/viewforum.php?f=24 News] and [http://forum.gp2x.de/viewforum.php?f=59 Betatest]&lt;br /&gt;
&lt;br /&gt;
[[Category:Emulators]]&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
[[Category:List]]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Emulator_List&amp;diff=26326</id>
		<title>Emulator List</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Emulator_List&amp;diff=26326"/>
		<updated>2012-11-25T19:39:18Z</updated>

		<summary type="html">&lt;p&gt;Notaz: sort sources by relevance&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''These lists were last updated on 2012-06-13 to include the latest files from [http://repo.openpandora.org/ Repo], the [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,5 File Archive], the [http://apps.open-pandora.org/cgi-bin/viewarea.pl?Emulators Pandora Apps], and the [[Emulator list#Forums|community forums]]. For other software lists on the wiki, see [[Software projects]] and [[Games]].''&lt;br /&gt;
&lt;br /&gt;
If different versions of an [[emulator]] were released, the listed &amp;quot;release date&amp;quot; is from the most recent one.&lt;br /&gt;
&lt;br /&gt;
Please click on the little squares to sort by different categories.&lt;br /&gt;
&lt;br /&gt;
To read a usage guide for several emulators, download [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,5,404 this guide].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Released emulators==&lt;br /&gt;
&lt;br /&gt;
Entry colors only denote compatibility and speed; interface and features are not taken into account.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; text-align: center;&amp;quot;&lt;br /&gt;
!Quality&lt;br /&gt;
!Description&lt;br /&gt;
|- style=&amp;quot;background: #81BEF7&amp;quot;&lt;br /&gt;
|Perfect&lt;br /&gt;
|Emulators with a '''blue''' background, for all intents and purposes, work perfectly.  Virtually every game runs at full speed, and ones that don't come close.  No overclocking required.  Practically no compatibility issues, with the possible exception of extremely obscure hardware tricks or addons.&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Fantastic&lt;br /&gt;
|Emulators with a '''green''' background work very well.  A lot of games run great at or close to 500Mhz, though some issues do exist.  Little overclocking is required.  Compatibility issues are minimum.&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|Decent&lt;br /&gt;
|Emulators with a '''yellow''' background have issues.  Some games are playable, and a few do run full speed, but overclocking is typically needed.  Compatibility issues may be considerable.  This could also represent emulators with great compatibility, but low speed (or vice versa).&lt;br /&gt;
|- style=&amp;quot;background: #F7BE81&amp;quot;&lt;br /&gt;
|Bad&lt;br /&gt;
|Emulators with an '''orange''' background do not run well.  Few games are playable.  Overclocking is mandatory.  There may be lots of compatibility issues as well.&lt;br /&gt;
|- style=&amp;quot;background: #F78181&amp;quot;&lt;br /&gt;
|Poor&lt;br /&gt;
|Emulators with a '''red''' background are worthless.  No games are playable at 500Mhz, and you have to overclock very high to see a difference.  Full speed is out of the question.  Compatibility is likely nonexistent.  This is test release territory.&lt;br /&gt;
|-&lt;br /&gt;
|N/A&lt;br /&gt;
|Emulators with a '''white''' background do not have enough information about them.  Please try them out and add to this page!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- To add a color to an entry, simple replace &amp;quot;#xxxxxx&amp;quot; with these numbers;&lt;br /&gt;
Blue: #81BEF7&lt;br /&gt;
Green: #90FF90&lt;br /&gt;
Yellow: #F3F781&lt;br /&gt;
Orange: #F7BE81&lt;br /&gt;
Red: #F78181&lt;br /&gt;
Leave it at #xxxxxx for white; invalid values do not change color. --&amp;gt;&lt;br /&gt;
''If you have tried an emulator which has an uncoloured background, please add the appropriate background colour based on the legend to reflect the status of the emulator.  You may add a statement in the notes if you feel that it's necessary.''&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse; text-align: center; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
! Emulated System&lt;br /&gt;
! Project Name&lt;br /&gt;
! Release Date &amp;lt;small&amp;gt;(YYYY-MM-DD)&amp;lt;/small&amp;gt;&lt;br /&gt;
! Download&lt;br /&gt;
! Authored or Ported By&lt;br /&gt;
! &amp;lt;span title=&amp;quot;Compatibility List&amp;quot;&amp;gt;C&amp;lt;/span&amp;gt;&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
! &amp;lt;span title=&amp;quot;Compression Support&amp;quot;&amp;gt;CS&amp;lt;/span&amp;gt;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&lt;br /&gt;
! Notes&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Various{{HideableNotes|&amp;lt;br/&amp;gt;Atari Lynx, Bandai Wonderswan, GBA, GB/C, Sega Game Gear, Sega Master System, PC Engine/CD, NES, Virtual Boy, Neo Geo Pocket Colour}}&lt;br /&gt;
|Mednafen 0.9.17.r3&lt;br /&gt;
|2011-07-13&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=package.mednafen-pandora.r3 Repo]&lt;br /&gt;
|pder&lt;br /&gt;
|&lt;br /&gt;
|zip, [http://boards.openpandora.org/index.php?/topic/4047-tutorial-how-to-save-space-on-turbo-cdpc-engine-cd-games/ ogg]&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/59533-mednafen-0-9-17-1-wip/page__gopid__950099&amp;amp;#entry950099 Discussion]  GBA and VB don't run fullspeed.&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Acorn RISC-PC&lt;br /&gt;
|[[pandrpcemu]] ('''beta''')&lt;br /&gt;
|2011-05-28&lt;br /&gt;
|[http://www.pokenet.co.uk/misc/files.pandora/pandrpcemu.pnd Download]  [http://repo.openpandora.org/?page=detail&amp;amp;app=pandrpcemu Repo]&lt;br /&gt;
|hideki&lt;br /&gt;
|&lt;br /&gt;
|None&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/3762-pandrpcemu-beta-acorn-risc-pc/ Discussion]&amp;lt;br /&amp;gt;Also available natively (32-bit RO5) under [[Software projects#Unreleased software (&amp;quot;Projects Under Development&amp;quot;)|Software projects]]&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Amiga 500 / Amiga 1200&lt;br /&gt;
|[[UAE4ALL]] V2.0&lt;br /&gt;
|2012-06-13&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=uae4all Main version]&lt;br /&gt;
|John4p, Pickle, Notaz, tuki_cat, et al.&lt;br /&gt;
|[http://spreadsheets.google.com/pub?key=0AuBR5X_s_5_idG92ZVQ5cEs4ZEhYTm5sSjFIcl83U2c&amp;amp;hl=en&amp;amp;gid=0 GD]&lt;br /&gt;
|gzip&lt;br /&gt;
|&amp;quot;UAE4All 2.0 only works with FAME/C core. Cyclone and UAE core are not compatible.&lt;br /&gt;
Thus UAE4All 2.0 replaces the old FAME/C release. The old Cyclone and UAE core releases are still available in this release (but they're still UAE4All 1.1 and won't see new features). [http://boards.openpandora.org/index.php?/topic/8770-uae4all-20/ Discussion]  {{HideableNotes|}}&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|Amiga 1200&lt;br /&gt;
|[[P-UAE]]&lt;br /&gt;
|2010-06-06&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/puae.inf Apps] [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,86 Archive]&lt;br /&gt;
|Gnostic&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|Amiga&lt;br /&gt;
|[[pandeuae]] ('''beta''')&lt;br /&gt;
|2011-05-09&lt;br /&gt;
|[http://www.hidnet.org.uk/pandeuae.pnd Download]&lt;br /&gt;
|hideki&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/3350-euae-port/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #81BEF7&amp;quot;&lt;br /&gt;
|Amstrad CPC&lt;br /&gt;
|[[Pandora-CAP32]]&lt;br /&gt;
|2010-06-27&lt;br /&gt;
|[http://zx81.zx81.free.fr/public/pandora/cap32/pandora-cap32-v1.1.0-bin.zip Download] [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,115 Archive]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|gzip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54801-pandora-cap32-v1-1-0/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Apple II&lt;br /&gt;
|[[LinApple]] 1.3.5.0&lt;br /&gt;
|2011-09-13&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=linapple-jerryblade-042011 Repo]&lt;br /&gt;
|JerryBlade, CFWhitman&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Discussion: [http://www.gp32x.com/board/index.php?/topic/59229-apple-emulator-for-pandora/page__view__findpost__p__957512 GP32X] [http://boards.openpandora.org/index.php?/topic/2490-apple-ii-emulator/ OP]&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Arcade (laserdisc)&lt;br /&gt;
|[[Daphne]] v1.0.0.3 &lt;br /&gt;
|2011-08-14&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=daphne-daphne-25097 Repo]&lt;br /&gt;
|mcobit&lt;br /&gt;
|&lt;br /&gt;
|[http://winff.org/html_new/ Bitrate]&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/4852-daphne-wip/ Discussion]  {{HideableNotes|Use [http://winff.org/html_new/ WinFF] to re-encode your video files to a lower bitrate if necessary, as doing so will improve speed and shrink the file.  Faster SD cards also improve speed greatly.}}&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|Arcade&lt;br /&gt;
|[[MAME]] v0.106 &lt;br /&gt;
|2010-05-29&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/mame106.pnd.inf Apps]  [http://repo.openpandora.org/?page=detail&amp;amp;app=mame.cosam.106 Repo]&lt;br /&gt;
|SteveM&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|{{HideableNotes|Runs more games than MAME4ALL, but at a slower speed.}}&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Arcade&lt;br /&gt;
|[[MAME4All]] v2.5b7&lt;br /&gt;
|2010-09-07&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,73,200 Archive]  [http://repo.openpandora.org/?page=detail&amp;amp;app=mame4all.cosam.2.5-beta7 Repo]&lt;br /&gt;
|SteveM, Franxis&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/56188-mame4all-beta/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Arcade&lt;br /&gt;
|SDLMAME v.110&lt;br /&gt;
|2010-06-30&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,73,106 Archive]&lt;br /&gt;
|?&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|Use MAME4ALL instead, this is slow.&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Atari 520&lt;br /&gt;
|PAtari v0.1&lt;br /&gt;
|2009-04-03&lt;br /&gt;
|[http://www.pandorasource.de/download.php?view.4 Download]&lt;br /&gt;
|cpasjuste&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
|Atari 800&lt;br /&gt;
|Atari800&lt;br /&gt;
|2011-08-06&lt;br /&gt;
|[http://ompldr.org/vOXUxYQ/atari800.pnd.zip Download]&lt;br /&gt;
|StreaK&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/60165-atari-800-emulator-almost-final/ Discussion]  {{HideableNotes|Emulates the 800, 800XL, 130XE, and 5200 platforms.}}&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Atari 8-Bit&lt;br /&gt;
|Pandora-Atari&lt;br /&gt;
|2010-08-04&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/atari-1.1.0.inf Apps]  [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,173 Archive]  &lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/55724-pandora-atari-atari-8001305200-emulator-for-pandora-v110/ Discussion] {{HideableNotes|Emulates the 800, 800XL, 130XE, and 5200 platforms.}}&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Atari Lynx&lt;br /&gt;
|[[Handy]]&lt;br /&gt;
|2010-06-18&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=handy.cosam.0.5.0.0 Repo]&lt;br /&gt;
|SteveM&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54220-handy/ Discussion]  {{HideableNotes|Do not turn on the FPS counter, or else the emulator will slow down dramatically.}}&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Atari ST&lt;br /&gt;
|Hatari 1.0.3.2&lt;br /&gt;
|2011-08-02&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=hatari.skeezix.pkg Repo]&lt;br /&gt;
|Skeezix&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/58088-hatari-atari-st-emu-140-released/page__view__findpost__p__934671 Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Atari VCS 2600&lt;br /&gt;
|[[Stella]]&lt;br /&gt;
|2010-05-07&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/Stella312a.inf Apps]  [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,53 Archive]&lt;br /&gt;
|Skeezix&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Atari VCS 2600&lt;br /&gt;
|Pandora-2600 ([[Stella]])&lt;br /&gt;
|2010-07-11&lt;br /&gt;
|[http://zx81.zx81.free.fr/public/pandora/2600/pandora-2600-v1.1.0-pnd.zip Download]  [http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/2600-1.1.0.inf Apps]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54934-pandora-2600-atari-2600-emulator-for-pandora-v110/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Atari VCS 2600&lt;br /&gt;
|[[Stella]] &lt;br /&gt;
|2011-08-03&lt;br /&gt;
|[http://ompldr.org/vOXF0dQ/stella.pnd Download]&lt;br /&gt;
|StreaK&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/60123-stella-atari-2600-beta-in-pnd/ Discussion]. {{HideableNotes|PAL games don't run.}}&lt;br /&gt;
|-&lt;br /&gt;
|Atari VCS 2600&lt;br /&gt;
|[[Stella]] 3.4.2.2&lt;br /&gt;
|2011-10-06&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=stella-svn Repo]&lt;br /&gt;
|Lomaxx&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Atari VCS 7800&lt;br /&gt;
|Pandora-7800 v1.1.0&lt;br /&gt;
|2010-07-11&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,146 Archive]  [http://zx81.zx81.free.fr/public/pandora/7800/pandora-7800-v1.1.0-pnd.zip Download]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/55189-pandora-7800-atari-7800-emulator-for-pandora-v110/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Colecovision&lt;br /&gt;
|[[Colem]]&lt;br /&gt;
|2010-05-29&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/colem_alpha.inf Apps]  [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,70 Archive]  [http://repo.openpandora.org/?page=detail&amp;amp;app=colem.skeezix Repo]&lt;br /&gt;
|Skeezix&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Colecovision&lt;br /&gt;
|[[Pandora Colem]]&lt;br /&gt;
|2010-06-30&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/colem-1.1.0.inf Apps]  [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,129 Archive]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/60164-colem-port-of-zx81-slightly-modified/ Discussion for modified version (no PND)]&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Commodore 64&lt;br /&gt;
|[[Vice]]&lt;br /&gt;
|2010-03-25&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/ViceX64.inf Apps] [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,46 Archive]&lt;br /&gt;
|Pickle&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|{{HideableNotes|Very good emulation, deactivate wrap mode in speed seetings if you suffer sound problems}}&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Commodore (Other)&lt;br /&gt;
|[[Vice]]&lt;br /&gt;
|2010-03-25&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/ViceMisc.inf Apps] [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,47 Archive]&lt;br /&gt;
|Pickle&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|{{HideableNotes|Emulates the CBM2, C128, PET, Plus4, and VIC platforms.}}&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|GPH GP2X/Wiz&lt;br /&gt;
|[[Ginge]]&lt;br /&gt;
|2010-08-16&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=package.ginge.notaz Repo]&lt;br /&gt;
|Notaz&lt;br /&gt;
|&lt;br /&gt;
|None&lt;br /&gt;
|{{HideableNotes|Not really an emulator. [http://www.gp32x.com/board/index.php?/topic/55980-ginge/page__view__findpost__p__913442 DO NOT run from root].  To get rid of the default blur filter, use [http://www.gp32x.com/board/index.php?/topic/57179-pandora-emulators-vs-gp2xwiz-emulators/page__view__findpost__p__923471 this solution].}}&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|HP-48&lt;br /&gt;
|[[Pandora-X48]]&lt;br /&gt;
|2010-06-17&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,113,96 Archive]  [http://zx81.zx81.free.fr/serendipity/index.php?/categories/129-HP-48 Download]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Emulates a calculator. [http://www.gp32x.com/board/index.php?/topic/54482-x48/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Macintosh 68K&lt;br /&gt;
|Basilisk II&lt;br /&gt;
|2010-12-15&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?app=core&amp;amp;module=attach&amp;amp;section=attach&amp;amp;attach_id=512 Download]  [http://www.mediafire.com/?ue5eyole855fyul 2]&lt;br /&gt;
|dgame&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/56900-basilisk-ii-pnd-68k-macintosh-emulator/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Mattel Intellivision&lt;br /&gt;
|[[Jzintv]]&lt;br /&gt;
|2010-09-02 &lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/jzintv.inf Apps]&lt;br /&gt;
|WizardStan&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/56426-jzintv/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|MSX&lt;br /&gt;
|[[Pandora-MSX]]&lt;br /&gt;
|2010-06-26&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/msx-1.1.1.inf Apps]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|zip, gzip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54775-pandora-msx-v1-1-0/ Discussion]  {{HideableNotes|Only disk images may be gzippped, and if they are, they cannot be written to.}}&lt;br /&gt;
|- &lt;br /&gt;
|NEC PC-9801&lt;br /&gt;
|[[Xnp2]]&lt;br /&gt;
|2011-05-01&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,393 Archive]  [http://apps.openpandora.org/cgi-bin/viewapp.pl?/Emulator/xnp2.inf Apps]  [http://www.mediafire.com/?57qer2aud0e8p9y Download]&lt;br /&gt;
|quews (port)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.youtube.com/watch?v=Bd3a-duBfdU Video]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|NEC PC Engine&lt;br /&gt;
|[[Pandora HuGo]]&lt;br /&gt;
|2010-06-28&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/hugo-1.1.0.inf Apps]  [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,117 Archive]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54833-hugo-pandora-v1-1-0/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|NEC PC Engine&lt;br /&gt;
|Temper (alpha)&lt;br /&gt;
|2011-07-25&lt;br /&gt;
|[http://exophase.devzero.co.uk/temper.pnd Download]&lt;br /&gt;
|Exophase&lt;br /&gt;
|&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/4047-tutorial-how-to-save-space-on-turbo-cdpc-engine-cd-games/ ogg]&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/4621-temper-split-from-other-thread/ Discussion]  Also supports the SuperGrafx.&lt;br /&gt;
|- style=&amp;quot;background: #81BEF7&amp;quot;&lt;br /&gt;
|NES&lt;br /&gt;
|[[GPFCE-GP2X]]&lt;br /&gt;
|2010-10-13&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,224 Archive]  [http://repo.openpandora.org/?page=detail&amp;amp;app=gpfcegp2x Repo]&lt;br /&gt;
|notaz&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|{{HideableNotes|The GP2X version of GPFCE, packaged into a PND with Ginge.}}&lt;br /&gt;
|- style=&amp;quot;background: #81BEF7&amp;quot;&lt;br /&gt;
|NES&lt;br /&gt;
|[[GPFCE]]&lt;br /&gt;
|2010-05-29&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,72 Archive]  [http://apps.openpandora.org/cgi-bin/viewapp.pl?/Emulator/gpfce.inf Apps]&lt;br /&gt;
|Notaz, Pickle&lt;br /&gt;
|[[Compat:Emulator_Compatibility_-_NES | W]]&lt;br /&gt;
|zip&lt;br /&gt;
|{{HideableNotes|Sound works if you set the rate to 44000Hz in the options.  Forces a 2xsai like filter.}}&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|NES&lt;br /&gt;
|[[nesemu]]&lt;br /&gt;
|2010-05-29&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,71 Archive]  [http://apps.openpandora.org/cgi-bin/viewapp.pl?/Emulator/nesemu.inf Apps]&lt;br /&gt;
|Pickle&lt;br /&gt;
|[[Compat:Emulator_Compatibility_-_NES | W]]&lt;br /&gt;
|&lt;br /&gt;
|[http://code.google.com/p/nesemu/ Website] Seems to only run at 40fps.&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|NES&lt;br /&gt;
|[[Nestopia]]&lt;br /&gt;
|2011-08-01&lt;br /&gt;
|[http://ompldr.org/vOXB2Mg/nestopia_openpandora_streak.zip Download]&lt;br /&gt;
|StreaK&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/60112-nestopia-for-openpandora-beta/ Discussion] {{HideableNotes|Emulator focus is accuracy.  Very high compatibility at a cost of speed.  Not a PND.}}&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|Nintendo 64&lt;br /&gt;
|[[Mupen64Plus]] 1.5.r20110615.2&lt;br /&gt;
|2011-06-16&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=mupen64plus Repo]&lt;br /&gt;
|Ari64, Adventus, JayFoxRox, sebt3, et al.&lt;br /&gt;
|[http://tinyurl.com/6ccuqmc GD]&lt;br /&gt;
|zip, 7z, bzip2&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/53683-mupen64plus/page__view__findpost__p__951543 Discussion]  Compatibility list is mostly outdated. {{HideableNotes|To get good auto-frameskip, switch to gles2n64 0.0.5, set frame render rate 2, auto frameskip 1 -[http://www.gp32x.com/board/index.php?/topic/53683-mupen64plus/page__view__findpost__p__946705]}}&lt;br /&gt;
|- style=&amp;quot;background: #F78181&amp;quot;&lt;br /&gt;
|Nintendo DS&lt;br /&gt;
|[[Desmume]]&lt;br /&gt;
|2011-08-04&lt;br /&gt;
|[http://www.2shared.com/file/wxnc3MRT/desmume097.html Download]&lt;br /&gt;
[http://www.mediafire.com/?8gvvhqz3e2zkxzj 2]&lt;br /&gt;
|notaz&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/4744-nintendo-ds-emulator/page__view__findpost__p__82779 Discussion] Not meant for entertainment; was ported only to shut people up.&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|Nintendo GBA/GBC/GB&lt;br /&gt;
|[[VisualBoyAdvance]]&lt;br /&gt;
|2010-12-08&lt;br /&gt;
|[http://apps.openpandora.org/cgi-bin/viewapp.pl?/Emulator/vba-1.7.2-0.inf Apps]  [http://www.mediafire.com/?7qbxlnp0h2isokf Download]&lt;br /&gt;
|EvilDragon, SteveM&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/57808-visualboyadvance-v1-7-2-1/page__p__929521&amp;amp;#entry929521 Discussion]. Runs GB/C well; GBA is slow&lt;br /&gt;
|- style=&amp;quot;background: #81BEF7&amp;quot;&lt;br /&gt;
|Nintendo GBA&lt;br /&gt;
|[[gpSP]]&lt;br /&gt;
|2011-09-08&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=package.gpsp.notaz Repo]&lt;br /&gt;
|Exophase, notaz&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|Discussion: [http://www.gp32x.com/board/index.php?/topic/60219-gba-emulator-that-you-can-adjust-the-screen-size/page__view__findpost__p__957136 GP32X] [http://boards.openpandora.org/index.php?/topic/5226-gpsp-for-pandora-from-notaz/ OP]. Zipped ROMs only.  Now a native port with fullscreen scaling.&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Nintendo GBA&lt;br /&gt;
|[[gpSP]] (Ginged)&lt;br /&gt;
|2010-10-13&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,199 Archive]&lt;br /&gt;
|Exophase, notaz&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://gpsp-dev.blogspot.com/ Website]. {{HideableNotes|Runs through [[Ginge]], only zipped ROMs.  [http://www.gp32x.com/board/index.php?/topic/58722-im-looking-for-a-gba-emulator-without-blurry-upscaling/ No fullscreen scaling].}}&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Nintendo GB/GBC&lt;br /&gt;
|[[GnuBoy]] 1.0.5Svn&lt;br /&gt;
|2010-11-10&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,207 Archive]  [http://repo.openpandora.org/?page=detail&amp;amp;app=sdlgnuboy Repo]&lt;br /&gt;
|Pickle, EvilDragon&lt;br /&gt;
|&lt;br /&gt;
|zip, gzip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/56916-gnuboy-updated/ Discussion] [http://www.gp32x.com/board/index.php?/topic/57436-gnuboy-v1-0-5-svn-released/ 2] uses [[PickleLauncher]]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Nintendo GB/GBC&lt;br /&gt;
|[[GnGB]] ('''beta''')&lt;br /&gt;
|2010-10-04&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?app=core&amp;amp;module=attach&amp;amp;section=attach&amp;amp;attach_id=482 Download]  [http://www.mediafire.com/?7qbxlnp0h2isokf 2]&lt;br /&gt;
|dgame (port)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/56886-gngb-pnd-game-boy-and-game-boy-color-emulator/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Nintendo Pokémon mini&lt;br /&gt;
|[[Pokémini]] 0.4.4&lt;br /&gt;
|2011-04-13&lt;br /&gt;
|[http://apps.openpandora.org/cgi-bin/viewapp.pl?/Emulator/pokemini.inf Apps]  [http://www.mediafire.com/?05g9s8w780mt58g Download]&lt;br /&gt;
|Wally&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/2898-pokemini-emulator-pokemon-mini Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Oric-1/Atmos&lt;br /&gt;
|[[PandOricutron]]&lt;br /&gt;
|2010-06-16&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/PandOricutron_108.inf Apps]&lt;br /&gt;
|torpor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54260-pandoricutron-1-0-8/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|PDP-11&lt;br /&gt;
|[[SIMH PDP-11]]&lt;br /&gt;
|2010-05-28&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,83 Archive]  [http://repo.openpandora.org/?page=detail&amp;amp;app=msimh.cosam.3.8.0.0 Repo]&lt;br /&gt;
|SteveM&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Philips Odyssey 2&lt;br /&gt;
|[[O2EM]] 1.18-1&lt;br /&gt;
|2010-08-21&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,186 Archive]  [http://repo.openpandora.org/?page=detail&amp;amp;app=o2em Repo]&lt;br /&gt;
|Hitnrun, Daniel Boris&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
|SAM Coupé&lt;br /&gt;
|[[SimCoupe]]&lt;br /&gt;
|2011-08-19&lt;br /&gt;
|[http://ompldr.org/vOXlsaw/simcoupe.pnd.zip Download]&lt;br /&gt;
|StreaK&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Discussion: [http://www.gp32x.com/board/index.php?/topic/60220-simcoupe-a-sam-coupe-emulator-beta/ GP32X] [http://boards.openpandora.org/index.php?/topic/4947-simcoupe-a-sam-coupe-emulator-beta/ OP]&lt;br /&gt;
|- style=&amp;quot;background: #81BEF7&amp;quot;&lt;br /&gt;
|Sega Genesis, CD, 32X, Master System&lt;br /&gt;
|[[PicoDrive]] 1.80&lt;br /&gt;
|2010-09-19&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=package.picodrive.notaz Repo]&lt;br /&gt;
|Notaz&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/56713-picodrive-1-80/ Discussion] ([http://www.gp32x.com/board/index.php?/topic/53899-picodrive-released/ old]). {{HideableNotes|Master System support is preliminary. Not all 32X games run.}}&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Sega Master System &amp;amp; Game Gear&lt;br /&gt;
|[[Dega]] v1.16-4&lt;br /&gt;
|2010-08-15&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=dega.cosam.1.16.0.2 Repo]&lt;br /&gt;
|SteveM&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54914-dega/ Discussion]{{HideableNotes|Press R+number to save, L+number to load, Pandora key to quit}}&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Sega Master System&lt;br /&gt;
|PSMS v0.1&lt;br /&gt;
|2009-04-03&lt;br /&gt;
|[http://www.pandorasource.de/download.php?view.10 Download]&lt;br /&gt;
|cpasjuste&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #F7BE81&amp;quot;&lt;br /&gt;
|Sega Saturn&lt;br /&gt;
|Yabause r2660&lt;br /&gt;
|2011-08-06&lt;br /&gt;
|[http://hotfile.com/dl/126054899/6ca83f7/yabause-r2660.pnd.html Download]  [http://www.mediafire.com/?fmbn5ij2t3mucjh 2]&lt;br /&gt;
|Ari64&lt;br /&gt;
|[https://spreadsheets.google.com/spreadsheet/ccc?key=0Aq4SN3wYVIxgdHB4Z2hHcE9fQ3lTaTVMelEyZVBsVFE GD]&lt;br /&gt;
|&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/4583-yabause/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Sega Genesis&lt;br /&gt;
|DGen/SDL 1.30 Alpha Build 2&lt;br /&gt;
|2012-05-25&lt;br /&gt;
|[http://www.sendspace.com/file/a8af4p Download]&lt;br /&gt;
|Kazuki&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|SNES&lt;br /&gt;
|[[SNES9X4P]] 1.39ff - v20111205-2&lt;br /&gt;
|2011-12-06&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=snes9x4p_ivanovic Repo]&lt;br /&gt;
|HideableNotes|Ivanovic, Skeezix, SiENcE (Dingoo)&lt;br /&gt;
|&lt;br /&gt;
|7z&lt;br /&gt;
|Dingoo Snes9x port. [http://www.gp32x.com/board/index.php?/topic/55378-snes9x4d4p-another-new-build-now-with-hi-res-and-new-rom-picker/page__view__findpost__p__958887] uses [[PickleLauncher]]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|SNES&lt;br /&gt;
|SNES9X v0.2&lt;br /&gt;
|2009-04-03&lt;br /&gt;
|[http://www.pandorasource.de/download.php?view.7 Download]&lt;br /&gt;
|cpasjuste (port)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|SNES&lt;br /&gt;
|[[PocketSNES]] ('''beta''') 0.1&lt;br /&gt;
|2010-08-08&lt;br /&gt;
|[http://www.rangelreale.com/pandora/pocketsnes_hack_0.1.pnd Download]&lt;br /&gt;
|Hitnrun (port)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/55796-pocketsnes-hack/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #81BEF7&amp;quot;&lt;br /&gt;
|SNK Neo Geo&lt;br /&gt;
|[[GnGeo]] 0.8.3&lt;br /&gt;
|2011-04-20&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=gngeopnd-pepone Repo]&lt;br /&gt;
|Pepone, Manolis&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|Discussion: [http://www.gp32x.com/board/index.php?/topic/59207-gngeo-0-8-2/page__view__findpost__p__946739 GP32X] [http://boards.openpandora.org/index.php?/topic/2936-gngeo-083/ OP]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|SNK Neo Geo&lt;br /&gt;
|NeoGeo SDL&lt;br /&gt;
|2009-04-03&lt;br /&gt;
|[http://www.pandorasource.de/download.php?view.13 Download]&lt;br /&gt;
|Cpasjuste&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SNK NeoGeo Pocket&lt;br /&gt;
|NeoPop&lt;br /&gt;
|2010-07-15&lt;br /&gt;
|[http://www.pdroms.de/files/1969/ Download]&lt;br /&gt;
|Cpasjuste&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/58848-neopop-ngpc-emulator-released/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|SNK Neo Geo Pocket&lt;br /&gt;
|[[Race]]&lt;br /&gt;
|2010-06-20&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/race10.inf Apps]&lt;br /&gt;
|Hooka&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54187-race-a-neo-geo-pocket-color-emulator Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #F7BE81&amp;quot;&lt;br /&gt;
|Sony Playstation&lt;br /&gt;
|[[PSX4Pandora]]&lt;br /&gt;
|2010-11-16&lt;br /&gt;
|[http://www.zodttd.com/downloads/psx4pandora10b5.pnd Download]&lt;br /&gt;
|ZodTTD&lt;br /&gt;
|[http://spreadsheets.google.com/pub?key=0AkBB6e4g1lGtdFVwODhsQzdlWVdrMTRKdDFXa1laZ2c&amp;amp;hl=en_GB&amp;amp;output=html GD]&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/57522-psx4pandora-1-0b5/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Sony Playstation&lt;br /&gt;
|[[PCSX-ReARMed]] r14&lt;br /&gt;
|2012-03-04&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=package.pcsx_rearmed.notaz Repo] [http://notaz.gp2x.de/releases/pcsxr/pcsx_rearmed_r14.pnd Download]&lt;br /&gt;
|notaz&lt;br /&gt;
|[https://spreadsheets.google.com/ccc?key=0ArSWWAWRjErldHZVZlFxY0tBVnRRNXM5U3ZqWFNuN0E&amp;amp;hl=en#gid=0 GD]&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/4046-tutorial-how-to-save-space-on-ps1-games-without-ripping-video-or-music/ pbp]&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/6546-pcsx-rearmed-r13-with-a-new-gpu/ Discussion] [http://www.gp32x.com/board/index.php?/topic/57973-pcsx-rearmed/page__view__findpost__p__955679 old thread]&lt;br /&gt;
|- &lt;br /&gt;
|Thomson TO8D&lt;br /&gt;
|[[TO8_PND]]&lt;br /&gt;
|2011-11-15&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=TO8D_PND Repo]&lt;br /&gt;
|SladeCraven&lt;br /&gt;
|&lt;br /&gt;
|None&lt;br /&gt;
|Emulates the Thomson TO8/TO8D computer. [http://boards.openpandora.org/index.php?/topic/6076-thomson-to8-emulator-beta-version-040/page__fromsearch__1 Discussion]&lt;br /&gt;
|- &lt;br /&gt;
|TI89/TI89 Titanium / TI92/TI92+ / V200PLT&lt;br /&gt;
|[[TiEmu]]&lt;br /&gt;
|2011-09-10&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=tiemu-6232 Repo]&lt;br /&gt;
|Kazuki&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Emulates a calculator.&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|TI-99&lt;br /&gt;
|Pandora-TI99 ([[TI99Sim]])&lt;br /&gt;
|2010-07-21&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,164 Archive]  [http://zx81.zx81.free.fr/serendipity/index.php?/categories/147-TI99 Download]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TI-92&lt;br /&gt;
|[[XTiger]]&lt;br /&gt;
|2010-06-30&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/ti92-1.1.0.inf Apps]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Emulates a calculator.&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|TRS-80&lt;br /&gt;
|[[SDLTRS]]&lt;br /&gt;
|2011-08-03&lt;br /&gt;
|[http://www.mediafire.com/download.php?72etxpjqaosa11b Download]&lt;br /&gt;
|Blue Protoman&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|I give no support to this!  This is a hackjob port!&lt;br /&gt;
|- style=&amp;quot;background: #81BEF7&amp;quot;&lt;br /&gt;
|Vectrex&lt;br /&gt;
|[[Pandora-Vectrex]] v1.1.1&lt;br /&gt;
|2011-03-06&lt;br /&gt;
|[http://zx81.zx81.free.fr/public/pandora/vectrex/pandora-vectrex-v1.1.1-pnd.zip Download]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/58846-pandora-vectrex-vectrex-emulator-for-pandora-v110/page__view__findpost__p__942010 Discussion] Download game overlays [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,5,355 here].&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|x86 DOS&lt;br /&gt;
|[[DOSBox]] v0.74svn&lt;br /&gt;
|2010-11-09&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,54 Archive]&lt;br /&gt;
|Pickle&lt;br /&gt;
|[[DOSBox compatibility list|W]]&lt;br /&gt;
|None&lt;br /&gt;
|Discussion: [http://www.gp32x.com/board/index.php?/topic/57424-dosbox/ GP32Xa] [http://www.gp32x.com/board/index.php?/topic/53942-post-your-dosbox-successes-here/ GP32Xb] [http://boards.openpandora.org/index.php?/topic/2346-dosbox-room-for-optimization/ OPa] [http://boards.openpandora.org/index.php?/topic/2063-dosbox/ OPb]. [http://www.dosbox.com/comp_list.php General compatibility list]&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|x86 DOS&lt;br /&gt;
|[[DOSBox EX]]&lt;br /&gt;
|2011-08-16&lt;br /&gt;
|[http://ompldr.org/vOXhhMA/dosbox_ex.pnd.zip Download]&lt;br /&gt;
|StreaK&lt;br /&gt;
|&lt;br /&gt;
|None&lt;br /&gt;
|Discussion: [http://www.gp32x.com/board/index.php?/topic/60175-dosbox-ex-beta/ GP32X] [http://boards.openpandora.org/index.php?/topic/4855-dosbox-ex/ OP]&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|x86 PC&lt;br /&gt;
|[[Qemu for Pandora]]&lt;br /&gt;
|2012-03-02&lt;br /&gt;
|[http://www.openpandora.org/rebirth/qemu.pnd Download]&lt;br /&gt;
|IngoReis, mcobit&lt;br /&gt;
|&lt;br /&gt;
|None&lt;br /&gt;
|Discussion: [http://boards.openpandora.org/index.php?/topic/7004-qemu-for-pandora-for-rebirth-competition OP-Boards]&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|x86 Windows 3.1 r2, r1&lt;br /&gt;
|[[WinBox]] ('''beta''')&lt;br /&gt;
|2010-12-15&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=winbox-1 Repo]  [http://urjaman.dyndns.info/winbox_r2.pnd Download]&lt;br /&gt;
|urjaman&lt;br /&gt;
|&lt;br /&gt;
|None&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54985-win-3-1-via-dosbox-at-native-resolution/page__view__findpost__p__887198 Discussion] {{HideableNotes|Modified DOSBox to run Windows 3.1 at Pandora's native resolution}}&lt;br /&gt;
|-&lt;br /&gt;
|ZX-80 &amp;amp; ZX-81&lt;br /&gt;
|sz81&lt;br /&gt;
|2011-08-19&lt;br /&gt;
|[http://ompldr.org/vOXk0eA/sz81.pnd.zip Download]&lt;br /&gt;
|StreaK&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|ZX Spectrum&lt;br /&gt;
|[[Fuse]]&lt;br /&gt;
|2010-06-24&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/fuse-0.9.0.inf Apps]  [http://repo.openpandora.org/?page=detail&amp;amp;app=fuse.cosam.0.10.0.2 Repo]&lt;br /&gt;
|SteveM&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|ZX Spectrum&lt;br /&gt;
|[[Zx Pandy]] v3.2.1.4&lt;br /&gt;
|2011-04-12&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=zx_pandy.dave18.001 Repo]&lt;br /&gt;
|Dave18&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/58536-zx-pandy-released/ Discussion]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; &amp;quot;C&amp;quot; is short for compatibility list.&lt;br /&gt;
FT = Forum Topic&lt;br /&gt;
GD = Google Docs&lt;br /&gt;
W = Wiki page&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; &amp;quot;CS&amp;quot; is short for &amp;quot;Compression Support&amp;quot;.  The entries denote the formats that can be used to save space on the games.  A blank entry doesn't mean &amp;quot;none&amp;quot;, it means there's not enough info!  Please add more if you can!&lt;br /&gt;
&lt;br /&gt;
==Unreleased emulators==&lt;br /&gt;
This section includes both emulators that are actively being worked on, as well as ones that are or may be abandoned. The latter are included for historical purposes. &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse; text-align: center; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
!Emulated System&lt;br /&gt;
!Project Name&lt;br /&gt;
!Last Update&lt;br /&gt;
!Status&lt;br /&gt;
!Author/Port Author&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|Acorn BBC Micro&lt;br /&gt;
|BeebEm&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/1094-bbc-emulation-merged-thread/page__st__20#entry147214 2012-05-12]&lt;br /&gt;
|PND, two working builds&lt;br /&gt;
| [http://wiki.gp2x.org/wiki/BeebEm Authors], PND by [http://sam.nipl.net/ sswam]&lt;br /&gt;
|[http://pandoria.org/pnd/beebem.pnd PND] [http://repo.openpandora.org/?page=detail&amp;amp;app=beebem-15428 Repo] [http://boards.openpandora.org/index.php?/topic/1094-bbc-emulation-merged-thread/ Discussion] [http://www.gp32x.com/board/index.php?/topic/43489-beebem-for-gp2x-06-bbc-micro-emulator GP2X]&lt;br /&gt;
|-&lt;br /&gt;
|Amstrad PCW&lt;br /&gt;
|Joyce / Anne emu&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/4939-any-amstrad-pcw-lovers-in-da-house/page__view__findpost__p__85612 2011-08-18]&lt;br /&gt;
|Abandoned&lt;br /&gt;
|StreaK&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/4939-any-amstrad-pcw-lovers-in-da-house/ Discussion]  Discontinued: StreaK left the community.&lt;br /&gt;
|-&lt;br /&gt;
|Sega Dreamcast&lt;br /&gt;
|NullDC&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/57821-dreamcast/page__view__findpost__p__944843 2011-03-28]&lt;br /&gt;
|On hold&lt;br /&gt;
|Zezu / drkIIraziel&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?s=&amp;amp;showtopic=47065&amp;amp;view=findpost&amp;amp;p=709910] drkIIraziel says he will have time to work on it &amp;quot;[http://www.gp32x.com/board/index.php?/topic/57821-dreamcast/page__view__findpost__p__944843 after April 10]&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Nintendo SNES&lt;br /&gt;
|[[PandaSNES]]&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/43213-any-snes-fans-in-the-house/page__view__findpost__p__631020 2008-07-29]&lt;br /&gt;
|Abandoned&lt;br /&gt;
|Squidge&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?showtopic=43213]  Probably discontinued; Squidge has not been heard from for a long time.&lt;br /&gt;
|-&lt;br /&gt;
|Sony Playstation Portable&lt;br /&gt;
|Pandora-PSP&lt;br /&gt;
|[http://jannikvogel.de/2011 2011-01]&lt;br /&gt;
|Abandoned&lt;br /&gt;
|[[User:JayFoxRox|JayFoxRox]]&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?showtopic=47270]  Probably discontinued; JayFoxRox has since left the community.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
*[http://sebt3.openpandora.org/pnd/ Releases by sebt3]&lt;br /&gt;
*[http://www.hermocom.com/en/downloads/openpandora/ Releases by Hermocom]&lt;br /&gt;
*[http://rebirthofxeen.com/files/pandora/ Releases by WizardStan]&lt;br /&gt;
*[http://www.stuckiegamez.co.uk/apps/pandora/ Releases by StuckieGamez]&lt;br /&gt;
&lt;br /&gt;
===Forums===&lt;br /&gt;
The following community forums are checked when updating this page:&lt;br /&gt;
*From GP32X: [http://www.gp32x.com/board/index.php?/forum/63-news-zone-pandora/ News Zone], [http://www.gp32x.com/board/index.php?/forum/71-beta-testing-pandora/ Beta Testing] and [http://www.gp32x.com/board/index.php?/forum/64-developers-corner-pandora/ Developer's Corner]&lt;br /&gt;
*From OP: [http://boards.openpandora.org/index.php?/forum/26-software-news/ Software News] and [http://boards.openpandora.org/index.php?/forum/10-beta-testing/ Beta Testing]&lt;br /&gt;
*From GP2X.de: [http://forum.gp2x.de/viewforum.php?f=24 News] and [http://forum.gp2x.de/viewforum.php?f=59 Betatest]&lt;br /&gt;
&lt;br /&gt;
[[Category:Emulators]]&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
[[Category:List]]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Configuring_ext_signals&amp;diff=26320</id>
		<title>Configuring ext signals</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Configuring_ext_signals&amp;diff=26320"/>
		<updated>2012-11-19T14:28:29Z</updated>

		<summary type="html">&lt;p&gt;Notaz: update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Pin functions (mux)=&lt;br /&gt;
By default UART2 pins are set up as GPIOs, and UART3 as an UART.&lt;br /&gt;
&lt;br /&gt;
==Changing pin functions under 3.2 kernel==&lt;br /&gt;
Described in the [http://boards.openpandora.org/index.php?/topic/4497-talking-to-the-gpios-on-the-ext-connector/page__st__40#entry195457 following forum post]&lt;br /&gt;
&lt;br /&gt;
=Power supply=&lt;br /&gt;
Currently always set to supply 2.8V, changing this requires patching bootloaders (xload and u-boot).&lt;br /&gt;
&lt;br /&gt;
This is connected to VAUX3 supply on PMIC, with these programmable voltages (200mA max):&lt;br /&gt;
1.5V, 1.8V, 2.5V, 2.8V and 3.0V, with 2.8V as default.&lt;br /&gt;
&lt;br /&gt;
'''warning''': at the time of this writing, both bootloaders (xload and u-boot) set this to 2.8V unconditionally, so don't rely on this providing other voltages during reboot until you patch both bootloaders.&lt;br /&gt;
&lt;br /&gt;
=GPIOs=&lt;br /&gt;
Can be controlled using GPIO sysfs class device, as described in beagleboard tutorials [http://bbfordummies.blogspot.com/2009/07/1.html here].&lt;br /&gt;
&lt;br /&gt;
=UART3=&lt;br /&gt;
On older firmwares, kernel messages are directed there. SuperZaxxon or later have that disabled.&lt;br /&gt;
&lt;br /&gt;
On all firmwares released so far terminal with a shell is attached to UART3. The port runs at 115200 8N1 baud rate.&lt;br /&gt;
==Disabling kernel messages==&lt;br /&gt;
To disable kernel mesages, you need to edit kernel boot arguments. Probably easiest way to do it is to create autoboot.txt and place on root directory of a card in slot1 with this content:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
setenv bootargs ubi.mtd=4 ubi.mtd=3 root=ubi0:rootfs rootfstype=ubifs rw rootflags=bulk_read&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Alternatives are using u-boot environment (configure through USB or UART3 serial before system boots up) or patching and reflashing u-boot itself.&lt;br /&gt;
==Disabling attached terminal==&lt;br /&gt;
For this you need to edit /etc/inittab on pandora rootfs and comment out these lines:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#S0:2345:once:/sbin/getty 115200 ttyS0&lt;br /&gt;
#O2:2345:once:/sbin/getty 115200 ttyO2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=USB_compatibility_list&amp;diff=26273</id>
		<title>USB compatibility list</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=USB_compatibility_list&amp;diff=26273"/>
		<updated>2012-10-31T23:00:55Z</updated>

		<summary type="html">&lt;p&gt;Notaz: this should be &amp;quot;tested on pandora&amp;quot;, as it was before rev 8739&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of USB devices that have been tested on the Pandora. If the device you want to know about isn't listed here, don't worry! Just go to [[USB_reference|the USB reference page]], look up the specs of your device, and you may be able to figure out if it's compatible.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
Each type of device will have its own unique way to troubleshoot.&lt;br /&gt;
&lt;br /&gt;
But here are some general tips:&lt;br /&gt;
&lt;br /&gt;
* Is USB-Host enabled?&lt;br /&gt;
* check &amp;lt;tt&amp;gt;lsusb&amp;lt;/tt&amp;gt;&lt;br /&gt;
* check &amp;lt;tt&amp;gt;dmesg&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When asking for help on [http://boards.openpandora.org/index.php?/forum/8-support/ the forums support board], be sure to post both your &amp;lt;tt&amp;gt;lsusb&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;dmesg&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Because &amp;lt;tt&amp;gt;dmesg&amp;lt;/tt&amp;gt; output is very long, you need to paste it within [spoiler] tags like this:&lt;br /&gt;
&lt;br /&gt;
  [spoiler]&lt;br /&gt;
  (paste your dmesg in here)&lt;br /&gt;
  [/spoiler]&lt;br /&gt;
&lt;br /&gt;
An easy way to get your &amp;lt;tt&amp;gt;dmesg&amp;lt;/tt&amp;gt; so you can easily copy and paste it, is:&lt;br /&gt;
&lt;br /&gt;
  dmesg|leafpad&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;leafpad&amp;lt;/tt&amp;gt; will open with the output of &amp;lt;tt&amp;gt;dmesg&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you have no networking on your palmtop, you can send the information to a text file like this:&lt;br /&gt;
&lt;br /&gt;
  cd (your storage card)&lt;br /&gt;
  dmesg&amp;gt;textfile.txt&lt;br /&gt;
  sync&lt;br /&gt;
&lt;br /&gt;
Then you can remove your card (if no programs are using it or PNDs are running on it) and bring it to a card reader on your desktop.&lt;br /&gt;
&lt;br /&gt;
= Networking =&lt;br /&gt;
&lt;br /&gt;
Please see the [[Mobile broadband]] page for tips on how to get these working, as well as [http://www.gp32x.com/board/index.php?/topic/54318-guide-mobile-broadband-usb-stick-usage/ this tutorial] from the GP32X forum.&lt;br /&gt;
&lt;br /&gt;
== HSDPA (3G) Modems ==&lt;br /&gt;
&lt;br /&gt;
Please note that many (if not all) USB 3G modems need modemmanager to be installed for switching from mass storage mode to serial communications mode. When first plugged in, most 3G USB modems claim to be a mass storage device and offer, on its built-in flash, drivers and connectivity software to be installed. Mostly this is only for Windows and Mac, so for the Pandora this is not useful. modemmanager instantly takes care of toggling the mode, so that when you plug in the modem, after a few seconds or maybe half a minute modemmanager has switched the modem to communications mode and NetworkManager is able to use it.&lt;br /&gt;
&lt;br /&gt;
If you are using a Firmware before HF7 (or one of its Alpha/Beta versions) you have to install modemmanager. To do so, connect your Pandora to the Internet, open a terminal and, as a super user, intall it via opkg by entering the commands:&lt;br /&gt;
&lt;br /&gt;
:sudo opkg update&lt;br /&gt;
:sudo opkg install modemmanager&lt;br /&gt;
&lt;br /&gt;
'''Note:''' If you are using a firmware more recent than &amp;quot;Zaxxon&amp;quot; Hotfix 6 (starting with HF7) you do not have to follow the steps outlined above since modemmanager comes preinstalled.&lt;br /&gt;
&lt;br /&gt;
'''Note 2:''' After plugging in the USB 3G modem, it may take some time until NetworkManager is able to use the modem. Wait for at least half a minute, until you give up and report that the modem doesn't work.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse; text-align: center; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
! Device&lt;br /&gt;
! Driver&lt;br /&gt;
! Connector&lt;br /&gt;
! Supported standard&lt;br /&gt;
! Current draw&lt;br /&gt;
! Suggested connection to Pandora&lt;br /&gt;
! Works on Pandora&lt;br /&gt;
! Additional comments&lt;br /&gt;
|-&lt;br /&gt;
| ZTE K3565-Z / MF626 / MF627 / MF636&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| Standard-A port&lt;br /&gt;
| {{Yes|Yes [http://www.gp32x.com/board/index.php?/topic/54318-guide-mobile-broadband-usb-stick-usage/page__view__findpost__p__956513] [http://boards.openpandora.org/index.php?/topic/7226-superzaxxon-beta-11-released/page__pid__127881#entry127881]}}&lt;br /&gt;
| A how-to by shideneyu for this modem can be found [http://www.pandorawiki.org/ZTE_K3565Z_3G_USB_Modem here]&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| BandLuxe C270&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| Standard-A port&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| A how-to by relliker for this modem can be found [http://www.pandorawiki.org/BandLuxe_C270_3G_USB_Modem here]&lt;br /&gt;
|-&lt;br /&gt;
| Huawei E156G&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| Standard-A port&lt;br /&gt;
| {{Yes|Yes [http://www.gp32x.com/board/index.php?/topic/52827-3gumts-usb-dongle/page__view__findpost__p__835681]}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Huawei E160&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| 250mA&lt;br /&gt;
| Standard-A port&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| As the entry for Huawei E220 was wrong, this Current draw could also be wrong. This one definitely needs modemmanager. After installing modemmanager, it works flawlessly.&lt;br /&gt;
|-&lt;br /&gt;
| Huawei E160E&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| 250mA&lt;br /&gt;
| Standard-A port&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| As the entry for Huawei E220 was wrong, this Current draw could also be wrong.&lt;br /&gt;
|-&lt;br /&gt;
| Huawei E1750&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| Standard-A port&lt;br /&gt;
| {{Yes|Yes [http://www.gp32x.com/board/index.php?/topic/54318-guide-mobile-broadband-usb-stick-usage/page__view__findpost__p__939350]}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[wikipedia:Huawei E220|Huawei E220]]&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 1.1&lt;br /&gt;
| 500mA&lt;br /&gt;
| Standard-A port via High Speed hub&lt;br /&gt;
| {{No|Not on new kernels.}}&lt;br /&gt;
| The successful Pandora E220 tests were done by DJWillis on an old kernel (long before Pandora shipped). It seems that they are NOT working any more.  Also tested on Linux (was it working?)  This entry originally said 250mA, but there is no source and current sources say 500mA.&lt;br /&gt;
|-&lt;br /&gt;
| 4G-Systems XS Stick P14&lt;br /&gt;
| Not required (usbserial module)&lt;br /&gt;
| standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| Standard-A port&lt;br /&gt;
| {{Yes|Yes [http://www.gp32x.com/board/index.php?/topic/54318-guide-mobile-broadband-usb-stick-usage/page__view__findpost__p__937681]}}&lt;br /&gt;
| Requires usbmodeswitch program. &lt;br /&gt;
|-&lt;br /&gt;
| iPhone 3GS (Probably also 1G/3G)&lt;br /&gt;
| ipheth&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| 500mA&lt;br /&gt;
| {{Unknown|USB A (Standard-A port?)}}&lt;br /&gt;
| {{Maybe|Should work in Angstrom with some work.}}&lt;br /&gt;
| Requires a good bit of dependencies to get working.  Tested with Debian from SD, but should work in Angstrom with some work.  The ipheth wwan0 device only provides a connection over the 3G modem, even if you're connected to a wifi network.  I used the iproxy and SSH tunneling method with proxychains to get to the wifi network.&lt;br /&gt;
|-&lt;br /&gt;
| HTC Desire&lt;br /&gt;
| not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| 500mA&lt;br /&gt;
| {{Unknown|USB A (Standard-A port?)}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| Requires internet connection sharing to be enabled from the phone.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== USB to Ethernet adapters ==&lt;br /&gt;
&lt;br /&gt;
To enable USB Ethernet adapters on the Pandora, you may need to left-click the networking icon on the panel in Xfce, and select &amp;quot;Ifupdown (bnep0)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse; text-align: center; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
! Device&lt;br /&gt;
! Driver&lt;br /&gt;
! Connector&lt;br /&gt;
! Supported standard&lt;br /&gt;
! Current draw&lt;br /&gt;
! Suggested connection to Pandora&lt;br /&gt;
! Works on Pandora&lt;br /&gt;
! Additional comments&lt;br /&gt;
|-&lt;br /&gt;
| Apple USB Ethernet Adapter MB442Z/A&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| Standard-A port&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| Reportedly uses an ASIX AX88xxx chipset.&lt;br /&gt;
|-&lt;br /&gt;
| Apple USB Ethernet Adapter model A1277&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| 250mA&lt;br /&gt;
| Standard-A port&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| ID 05ac:1402 Apple, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Conrad 3-Port-USB-Hub und Netzwerk-Adapter&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| A lot! {{HideableNotes|50% of battery charge only brings you 2h40min (min brightness, no other devices attached)}}&lt;br /&gt;
| Standard-A port&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| Has a 3port USB Hub included. External power supply can (and should) be attached, not included though. ASIX Chipset. 20€ @ [http://www.conrad.de/ce/de/product/976406/NOTEBOOK-MINI-DOCKINGSTATION-USBRJ45/SHOP_AREA_32315&amp;amp;promotionareaSearchDetail=005 Conrad Electronics].  Not tested in Linux.&lt;br /&gt;
|-&lt;br /&gt;
| Wii USB 2.0 10/100M adapter (use [http://www.asix.com.tw/products.php?op=pItemdetail&amp;amp;PItemID=86;71;101 ASIX AX 88772 USB 2.0 chip])&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| 250mA&lt;br /&gt;
| Standard-A port&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| ID 0b95:7720 ASIX Electronics Corp. AX88772.  [http://www.dealextreme.com/details.dx/sku.5926 This clone from DealExtreme] works too.&lt;br /&gt;
|-&lt;br /&gt;
| Connectland USB 2.0 10/100M Ethernet Adapter&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| 250mA&lt;br /&gt;
| Standard-A port&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| ID 0b95:7720 ASIX Electronics Corp. AX88772 - Works fine, Sometimes a reboot is necessary (ZaxxonHF5RC1).&lt;br /&gt;
|-&lt;br /&gt;
| Belkin Gigabit USB 2.0 Network Adapter&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| Standard-A port&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| The shape of it make is a bit awkward to fit if you connect it directly, but it has a short adapter cable. I only get ~95Mbit on a gigabit network, but then the pandora's cpu maxes out. (it may be that the driver/usb stack isn't very well optimized), has horribly bright blue LEDs.&lt;br /&gt;
|-&lt;br /&gt;
| MosChip MCS7830 USB 10/100 Ethernet adapter&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| 250-260mA&lt;br /&gt;
| Standard-A port&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| ID 9710:7830 MosChip Semiconductor MCS7830 10/100 Mbps Ethernet adapter. Kernel module: mcs7830.&lt;br /&gt;
|-&lt;br /&gt;
| EU.MARK USB 10/100M RJ45 Ethernet Network Adapter Dongle&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| Standard-A port&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| USB ID: 9710:7830 - bought from [http://www.dealextreme.com/details.dx/sku.22684 DealExtreme]&lt;br /&gt;
|-&lt;br /&gt;
| Digitus DN-10050 Fast Ethernet USB Adapter&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| Standard-A port&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| MosChip MCS7830-based adapter. USB ID 9710:7830.&lt;br /&gt;
|-&lt;br /&gt;
| Edimax EU-4230 Fast Ethernet USB Adapter with 3-port USB hub [http://edimax.ie/images/Image/datasheet/USB/EU-4230/EU-4230_Datasheet.pdf]&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| Standard-A port&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| Ethernet USB ID 0b95:772a ASIX Electronics Corp. 3-port USB2.0 hub USB ID 0409:005a NEC Corp. Optional power adapter for USB hub.&lt;br /&gt;
|-&lt;br /&gt;
| Peabird USB v2.0 Fast Ethernet Adapter&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| 500mA&lt;br /&gt;
| Standard-A port&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| ID 9710:7830 MosChip Semiconductor MCS7830 10/100 Mbps Ethernet adapter. Consumes a lot of current. Fragile, the protective plastic cord cracked after one month. Hot. A blue light a bit too flashy. Definitely avoid this model.&lt;br /&gt;
|-&lt;br /&gt;
| SIIG JU-NE0012-S1 USB 2.0 Fast Ethernet Adapter&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| Standard-A port&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| Bought from  [http://www.newegg.com/Product/Product.aspx?Item=N82E16812191163 Newegg]&lt;br /&gt;
|-&lt;br /&gt;
| Novatel Wireless Jetpack 4620L&lt;br /&gt;
| cdc_ether&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB &lt;br /&gt;
| High drain; 95% charge = 6:00 battery life.&lt;br /&gt;
| Standard-A port&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| This is a LTE/EVDO/CDMA/HSPA/UMTS/EDGE/GPRS Wifi Hotspot device; Device is registered as a USB Ethernet device when connected through USB tethered (as opposed to Wifi) connection. USB ID 1410:b008&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== USB to serial adapters ==&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse; text-align: center; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
! Device&lt;br /&gt;
! Driver&lt;br /&gt;
! Connector&lt;br /&gt;
! Supported standard&lt;br /&gt;
! Current draw&lt;br /&gt;
! Suggested connection to Pandora&lt;br /&gt;
! Works on Pandora&lt;br /&gt;
! Additional comments&lt;br /&gt;
|-&lt;br /&gt;
| pl203&lt;br /&gt;
| usbserial&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 1.1&lt;br /&gt;
| 100mA. A powered hub is needed.&lt;br /&gt;
| Standard-A port&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| A powered hub is needed. Plug the device, then load USB modules. ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== USB WiFi adapters ==&lt;br /&gt;
&lt;br /&gt;
The Pandora stock kernel may not come with all wireless driver support outside of the internal WiFi chip.  Sometimes, the only way you'll get wireless working is to build your own kernel with it included or try [http://wireless.kernel.org/en/users/Download compat-wireless].&lt;br /&gt;
&lt;br /&gt;
As for hofix 6a4 compat-wireless seems to be present in the kernel out of the box, so one can build a USB wireless driver for Pandora following this [http://boards.openpandora.org/index.php?/topic/5140-solvedbuilding-a-usb-wifi-driver/page__view__findpost__p__89280 algorithm]&lt;br /&gt;
&lt;br /&gt;
As for [[hotfix 6]] Release Candidate the kernel includes drivers for these Realtek chips: RTL8712/8188/8191/8192SU/8192CU&lt;br /&gt;
&lt;br /&gt;
See also [http://boards.openpandora.org/index.php?/topic/7160-micro-wifi-dongle/ this thread] on the forums for the latest.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse; text-align: center; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
! Device&lt;br /&gt;
! Driver&lt;br /&gt;
! Connector&lt;br /&gt;
! Supported standard&lt;br /&gt;
! Current draw&lt;br /&gt;
! Suggested connection to Pandora&lt;br /&gt;
! Tested on Pandora&lt;br /&gt;
! Additional comments&lt;br /&gt;
|-&lt;br /&gt;
| Advance Mini Wireless N150&lt;br /&gt;
| rtl8192cu&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| 500mA&lt;br /&gt;
| USB A&lt;br /&gt;
| {{Yes|Yes}}&lt;br /&gt;
| There's a little hole on it, so it's useful for attaching it to the OP.&lt;br /&gt;
|-&lt;br /&gt;
| ASUS WL-167G v2&lt;br /&gt;
| rt73usb + rt2x00usb + rt2x00lib&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| 300mA&lt;br /&gt;
| USB A&lt;br /&gt;
| {{Yes|Nothing in lsusb, nothing in dmesg :(. Have to be plugged into a non-powered (or powered) USB hub. dmesg shows &amp;quot;failed to request firmware error&amp;quot;. You just have to &amp;quot;cp /lib/firmware/rt73.bin /your/pandora-rootfs/lib/firmware/&amp;quot;}}&lt;br /&gt;
| 0b05:1723 ASUSTek Computer, Inc. WL-167G v2 802.11g Adapter [Ralink RT73]. Works pretty fine on Linux PC.&lt;br /&gt;
|-&lt;br /&gt;
| Belkin N1 Wireless USB Adapter (F5D8051) (&amp;quot;Ver. 2053&amp;quot;) (MARVELL v1021)&lt;br /&gt;
| N/A&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| No connection was attempted.&lt;br /&gt;
| {{No|No native driver support and ndiswrapper obviously won't work.}}&lt;br /&gt;
| There's a previous revision of this dongle which is supposed to have a Ralink chip, but they revised it and put a different chip inside.  Reported (by whom?) to work with ndiswrapper and works in Linux.&lt;br /&gt;
|-&lt;br /&gt;
| Belkin Surf micro &lt;br /&gt;
| rtl8192cu&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| USB A&lt;br /&gt;
| {{Yes|Yes}}&lt;br /&gt;
| {{Yes|Should work out of the box since [[Hotfix 6]] Release Candidate}}&lt;br /&gt;
|-&lt;br /&gt;
| Cisco/Linksys AE1000 High Performance Wireless-N USB Adapter&lt;br /&gt;
| rt3572sta (RT3572USB)&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| USB A (Standard-A port?)&lt;br /&gt;
| {{Yes|Works with a modified driver.}}&lt;br /&gt;
| (Compiled module for pandora:[http://boards.openpandora.org/index.php?/topic/1992-linksys-ae1000-usb-wifi/ pandora forum])  Download the driver from [http://www.ralinktech.com/support.php?s=2 ralink's driver site], edit ./common/rtusb_dev_id.c, before &amp;quot;#endif // RT2870&amp;quot; add &amp;quot;{USB_DEVICE(0x13B1,0x002F)},&amp;quot;, compile.'   Reported (by whom?) to work in Linux.&lt;br /&gt;
|-&lt;br /&gt;
| D-Link WIRELESS G USB ADAPTER DWL-G122 rev.E1 F/W 5.00&lt;br /&gt;
| rt2870sta + rt2800usb + rt2800lib&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| 450mA&lt;br /&gt;
| USB A&lt;br /&gt;
| {{No|lsusb shows it, sometimes have to plug and reboot. No modules are loaded.}}&lt;br /&gt;
| 07d1:3c0f D-Link System AirPlus G DWL-G122 Wireless Adapter(rev.E) [Ralink RT2870]. Works pretty fine on Linux PC.&lt;br /&gt;
|-&lt;br /&gt;
| Digitus Wireless 150N USB 2.0 Adapter&lt;br /&gt;
| rtl8192cu&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| 500mA&lt;br /&gt;
| USB A&lt;br /&gt;
| {{Yes|Yes}}&lt;br /&gt;
| Bundled with a non-WiFi Pandora coming from Craig's shop&lt;br /&gt;
|-&lt;br /&gt;
| Edimax EW-7811Un&lt;br /&gt;
| rtl8192cus&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| USB A&lt;br /&gt;
| {{Yes|Yes}}&lt;br /&gt;
| {{Yes|Should work out of the box since [[Hotfix 6]] Release Candidate}}&lt;br /&gt;
|-&lt;br /&gt;
| Netgear WNA1000M &lt;br /&gt;
| rtl8192cu&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| USB A&lt;br /&gt;
| {{Yes|Yes}}&lt;br /&gt;
| {{Yes|Should work out of the box since [[Hotfix 6]] Release Candidate}}&lt;br /&gt;
|-&lt;br /&gt;
| Thomson WLG-1500A&lt;br /&gt;
| ?&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| 400mA&lt;br /&gt;
| USB A&lt;br /&gt;
| {{No|Doesn't work.}}&lt;br /&gt;
| 0457:0163 Silicon Integrated Systems Corp. 802.11 Wireless LAN Adapter&lt;br /&gt;
|-&lt;br /&gt;
| TRENDnet TEW-424UB V2&lt;br /&gt;
| ?&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| 400mA&lt;br /&gt;
| USB A&lt;br /&gt;
| {{No|lsusb shows it, but no module is loaded}}&lt;br /&gt;
| 0457:0163 Silicon Integrated Systems Corp. 802.11 Wireless LAN Adapter. Same behavior on a PC.&lt;br /&gt;
|-&lt;br /&gt;
| Alfa Network AWUS036H 1000mw&lt;br /&gt;
| RTL8187&lt;br /&gt;
| IEEE 802.11b/g&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| ?&lt;br /&gt;
| USB A&lt;br /&gt;
| {{Yes|Yes}}&lt;br /&gt;
| can be found on ebay; tested with Beta 3&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== DVB/TNT/TDT ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse; text-align: center; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
! Device&lt;br /&gt;
! Connector&lt;br /&gt;
! Supported standard&lt;br /&gt;
! Current draw&lt;br /&gt;
! Suggested connection to Pandora&lt;br /&gt;
! Works on Pandora&lt;br /&gt;
! Module(s)&lt;br /&gt;
! Firmware&lt;br /&gt;
! Additional comments&lt;br /&gt;
|-&lt;br /&gt;
| AVerMedia AVerTV Volar Green HD&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| 500mA&lt;br /&gt;
| Standard-A port&lt;br /&gt;
| Should work&lt;br /&gt;
| af9033 tda18218&lt;br /&gt;
| dvb-usb-af9035-02.fw&lt;br /&gt;
| ID 07ca:a835 AVerMedia Technologies, Inc.&lt;br /&gt;
HD/PRO (A835)&lt;br /&gt;
|-&lt;br /&gt;
| AVerMedia AVerTV Volar Video Capture&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| Reported as 0mA. More likely to be 500mA&lt;br /&gt;
| Standard-A port&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| ID 07ca:4830 AVerMedia Technologies, Inc.&lt;br /&gt;
H830&lt;br /&gt;
|-&lt;br /&gt;
| Hauppauge WinTV aero&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| 100mA&lt;br /&gt;
| Standard-A port&lt;br /&gt;
| {{Yes|Yes}}&lt;br /&gt;
| smsmdtv&lt;br /&gt;
| sms1xxx-hcw-55xxx-dvbt-02.fw&lt;br /&gt;
| ID 2040:b900 Hauppauge &lt;br /&gt;
|-&lt;br /&gt;
| MSI Digi Vox Min&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| ?&lt;br /&gt;
| Standard-A port&lt;br /&gt;
| {{Yes|Yes}}&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| Realtek rtl2832u chipset&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Storage =&lt;br /&gt;
&lt;br /&gt;
== External Hard Disk Drives ==&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse; text-align: center; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
! Device&lt;br /&gt;
! Driver&lt;br /&gt;
! Connector&lt;br /&gt;
! Supported standard&lt;br /&gt;
! Current draw&lt;br /&gt;
! Suggested connection to Pandora&lt;br /&gt;
! style=&amp;quot;min-width: 120px&amp;quot; | Works on Pandora&lt;br /&gt;
! Additional comments&lt;br /&gt;
|-&lt;br /&gt;
| Freecom 250GB 2.5&amp;quot; portable&lt;br /&gt;
| Not Required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| Direct&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| Inside it's a Samsung Model HM251JX.  {{HideableNotes|So I guess anything based on that will also work OK.}}&lt;br /&gt;
|-&lt;br /&gt;
| (Intenso)® 2.5&amp;quot; MEMORYSTATION 1TB&lt;br /&gt;
| Not Required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| Direct&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| LaCie Rikiki 250GB USB 2.0 2.5&amp;quot; Hard Drive&lt;br /&gt;
| Not required&lt;br /&gt;
| standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| Standard-A port via powered High Speed Hub&lt;br /&gt;
| {{Partial|Not when unpowered, needs testing with a powered hub}}&lt;br /&gt;
| Not only does it fail to spin up, but it causes the Pandora's screen to pulsate wildly, much like an old CRT would if you placed a speaker or a magnet near to it. Not tested with a powered hub.&lt;br /&gt;
|-&lt;br /&gt;
| Seagate Seagate® Expansion™ External Drives&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| Direct&lt;br /&gt;
| {{No}}&lt;br /&gt;
| Tested by [http://www.gp32x.com/board/index.php?/user/14781-hitnrun/ Hitnrun]. &amp;quot;Isn't even detected in lsusb (drive powered by external power source)&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Verbatim 250GB Model #47580 Hard Drive&lt;br /&gt;
| Not required&lt;br /&gt;
| Direct&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| Direct&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| Tested by [http://www.gp32x.com/board/index.php?/topic/54509-dont-use-lacie-25-usb-hard-disk-drives-with-a-pandora/page__view__findpost__p__877512 almatuk].  {{HideableNotes|&amp;quot;Watched videos directly from it at full speed, no need for powered USB hub. Had issues playing roms directly off it however as it was formatted NTFS. I'm sure if I formatted to FAT32 these would disappear.&amp;quot;}}&lt;br /&gt;
|-&lt;br /&gt;
| Western Digital 160GB Elements External USB 2.0 2.5&amp;quot; Hard Drive&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| standard-A port via powered High Speed Hub&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Western Digital 250GB Elements Portable USB 2.0 2.5&amp;quot; Hard Drive&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| Direct or standard-A port via High Speed Hub&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Western Digital 250GB My Passport Essential USB 2.0 2.5&amp;quot; Hard Drive&lt;br /&gt;
| Not required&lt;br /&gt;
| {{Unknown|Direct?}}&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| {{Unknown|Direct?}}&lt;br /&gt;
| {{Partial|Maybe}}&lt;br /&gt;
| Tested by TheDarkSpectrum48K.  The first time it [http://www.gp32x.com/board/index.php?/topic/54509-dont-use-lacie-25-usb-hard-disk-drives-with-a-pandora/page__view__findpost__p__877386 &amp;quot;works perfectly!&amp;quot;].  The second time [http://www.gp32x.com/board/index.php?/topic/54509-dont-use-lacie-25-usb-hard-disk-drives-with-a-pandora/page__view__findpost__p__882635 it didn't work].&lt;br /&gt;
|-&lt;br /&gt;
| Western Digital 400GB My Passport Essential USB 2.0 2.5&amp;quot; HDD model WDME4000TE&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| Direct&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| Tested by [http://www.gp32x.com/board/index.php?/user/14534-peca/ Peca].&lt;br /&gt;
|-&lt;br /&gt;
| Western Digital 500GB Elements Portable External Hard Drive&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| Direct&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| Tested by [[User:Esn|Esn]]. {{HideableNotes|The USB cable that came with it was bad, so I used another one.[http://www.gp32x.com/board/index.php?/topic/59494-solved-how-do-i-get-my-wd-500gb-external-hard-drive-to-work-properly/page__view__findpost__p__949863]}}&lt;br /&gt;
|-&lt;br /&gt;
| Western Digital 500GB My Passport Essential External Hard Drive&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| Direct&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| Tested by [[User:Esn|Esn]]. Works fine. {{HideableNotes|Came pre-formatted in NTFS, but should work if you downloaded the community codec pack. It said 1TB on the packaging, but there was 465GB free space, so I'm pretty sure it was actually the 500GB one.}}[http://www.gp32x.com/board/index.php?/topic/59494-solved-how-do-i-get-my-wd-500gb-external-hard-drive-to-work-properly/page__view__findpost__p__949645]&lt;br /&gt;
|-&lt;br /&gt;
| Western Digital 1TB My Passport Essential SE External USB 2.0 2.5&amp;quot; Hard Drive&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| Direct or through powered High Speed Hub&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| Tested by [http://http://www.gp32x.com/board/index.php?/user/19191-mycohl/ Mycohl]. {{HideableNotes|Externally powered hub recommended to conserve battery power.}}&lt;br /&gt;
|-&lt;br /&gt;
| Western Digital Elements 2TB 3.5&amp;quot; Hard Drive Model:WDBAAU0020HBK&lt;br /&gt;
| Not Required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| Direct&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| Tested by [http://boards.openpandora.org/index.php?/user/430-kilowatt/ kilowatt].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== DVD/CD Drives ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse; text-align: center; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
! Device&lt;br /&gt;
! Driver&lt;br /&gt;
! Connector&lt;br /&gt;
! Supported standard&lt;br /&gt;
! Current draw&lt;br /&gt;
! Suggested connection to Pandora&lt;br /&gt;
! Works on Pandora&lt;br /&gt;
! Additional comments&lt;br /&gt;
|-&lt;br /&gt;
| Lite-On EZ-DUB DVD/CD Multi-Recorder (Model eZAU120)&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| Powered by included mains adapter - DC 12V 1.8A&lt;br /&gt;
| Standard-A port&lt;br /&gt;
| {{No}}&lt;br /&gt;
| Works in Linux.&lt;br /&gt;
|-&lt;br /&gt;
| Memorex 20x Multi Format DVD Recorder External - DVD±RW (±R DL)&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| Powered by included mains adapter&lt;br /&gt;
| Standard-A port&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Video display device =&lt;br /&gt;
&lt;br /&gt;
== VGA DVI HDMI adapter ==&lt;br /&gt;
&lt;br /&gt;
No devices have been tested yet&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse; text-align: center; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
! Device&lt;br /&gt;
! Driver&lt;br /&gt;
! Connector&lt;br /&gt;
! Supported standard&lt;br /&gt;
! Current draw&lt;br /&gt;
! Output connectors&lt;br /&gt;
! Works on Pandora&lt;br /&gt;
! Additional comments&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| No devices have been tested yet&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== External graphics cards ====&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse; text-align: center; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
! Device&lt;br /&gt;
! Driver&lt;br /&gt;
! Connector&lt;br /&gt;
! Supported standard&lt;br /&gt;
! Current draw&lt;br /&gt;
! Output connectors&lt;br /&gt;
! Works on Pandora&lt;br /&gt;
! Additional comments&lt;br /&gt;
|-&lt;br /&gt;
| Tritton see2 usb 2.0 to SVGA adapter&lt;br /&gt;
| sisusb&lt;br /&gt;
| USB&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| {{Unknown|High {{HideableNotes|Reduces Pandora's battery life in half (10h → 4h)}}}}&lt;br /&gt;
| VGA (D-SUB)&lt;br /&gt;
| {{Partial|Yes, but has performance issues.}}&lt;br /&gt;
| Needs to be integrated with preferences.  {{HideableNotes|Currently I (who?) must edit xorg.conf and mess with xinerama.}} Good for presentations, dragging a window is bearable, but hi-res video is slow.  Works in Linux without any issues.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Video capture devices =&lt;br /&gt;
&lt;br /&gt;
== Webcams ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse; text-align: center; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
! Device&lt;br /&gt;
! Driver&lt;br /&gt;
! Connector&lt;br /&gt;
! Supported standard&lt;br /&gt;
! Current draw&lt;br /&gt;
! Suggested connection to Pandora&lt;br /&gt;
! Works on Pandora&lt;br /&gt;
! Additional comments&lt;br /&gt;
|-&lt;br /&gt;
| Exoo No Driver/USB 2.0 Webcam (Model No.: M053)&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| Standard-A port&lt;br /&gt;
| {{No}}&lt;br /&gt;
| Bought from [http://www.dealextreme.com/details.dx/sku.14991 DealExtreme].  Works in Linux.&lt;br /&gt;
|-&lt;br /&gt;
| Logitech Quickcam Communicate Deluxe&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| Standard-A port&lt;br /&gt;
| {{No}}&lt;br /&gt;
| USB ID: 046d:0992, works though [http://linux-uvc.berlios.de/ uvcvideo].  Works in Linux.&lt;br /&gt;
|-&lt;br /&gt;
| Logitech HD Webcam C270 720p&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| 500mA&lt;br /&gt;
| Standard-A port&lt;br /&gt;
| {{Partial|Yes, but audio untested}}&lt;br /&gt;
| ID 046d:0825 Logitech, Inc.  Audio recognized, but not tested.  More info to come.  Works in Linux.&lt;br /&gt;
|-&lt;br /&gt;
| Logitech HD Webcam Pro 9000&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| 500mA&lt;br /&gt;
| Standard-A port&lt;br /&gt;
| {{Partial|Yes, but audio untested}}&lt;br /&gt;
| ID 046d:0990 Logitech, Inc.  Audio recognized, but not tested.  Great Picture!  Works in Linux.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Audio devices =&lt;br /&gt;
&lt;br /&gt;
== Microphones/recorders ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse; text-align: center; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
! Device&lt;br /&gt;
! Driver&lt;br /&gt;
! Connector&lt;br /&gt;
! Supported standard&lt;br /&gt;
! Current draw&lt;br /&gt;
! Suggested connection to Pandora&lt;br /&gt;
! Works on Pandora&lt;br /&gt;
! Additional comments&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.bluemic.com/yeti/] Blue Yeti&lt;br /&gt;
| not required&lt;br /&gt;
| standard-A&lt;br /&gt;
| unknown&lt;br /&gt;
| unknown&lt;br /&gt;
| standard-A port via High Speed USB hub &lt;br /&gt;
| {{unknown|Not thoroughly tested.}}&lt;br /&gt;
| Very roughly tested 2012-06-13 by [[user:spiralofhope|spiralofhope]] using Mumble.  More testing required.  {{HideableNotes|The system recognizes the Yeti, and it appears in Mumble's list of available devices, but the audio wizard doesn't show the Yeti as having input.  Additional troubleshooting is required, as is checking the manual/company website for missing information.}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.zoom.co.jp/english/products/h2/] Zoom H2 Handy Recorder&lt;br /&gt;
| not required&lt;br /&gt;
| standard-A&lt;br /&gt;
| USB 1.1&lt;br /&gt;
| 300mA&lt;br /&gt;
| standard-A port via High Speed USB hub &lt;br /&gt;
| {{Yes|Yes, needs a USB hub.}}&lt;br /&gt;
| Can record into Audacity, but won't be recognized unless connected through USB hub.[http://www.gp32x.com/board/index.php?/topic/59301-audacity-1-3-12/page__view__findpost__p__947602].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MIDI controllers ==&lt;br /&gt;
&lt;br /&gt;
EvilDragon bundled the usb MIDI class drivers in the default firmware image, therefore ANY class-compliant MIDI device should work with the Pandora, out of the box.[http://www.gp32x.com/board/index.php?/topic/58523-zynaddsubfx/page__view__findpost__p__938432]&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse; text-align: center; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
! Device&lt;br /&gt;
! Driver&lt;br /&gt;
! Connector&lt;br /&gt;
! Supported standard&lt;br /&gt;
! Current draw&lt;br /&gt;
! Suggested connection to Pandora&lt;br /&gt;
! Works on Pandora&lt;br /&gt;
! Additional comments&lt;br /&gt;
|-&lt;br /&gt;
| Akai LKP25&lt;br /&gt;
| Not required&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| {{Yes|Yes [http://www.gp32x.com/board/index.php?/topic/58523-zynaddsubfx/page__view__findpost__p__938432]}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| M-Audio MIDISPORT 2x2 Anniv&lt;br /&gt;
| Not required&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| 400mA&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| ID 0763:1050 Midiman.  High current draw!&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== USB audio controllers ==&lt;br /&gt;
&lt;br /&gt;
Aka. &amp;quot;professional soundcard&amp;quot;; see [http://en.wikipedia.org/wiki/Sound_card#Professional_soundcards_.28audio_interfaces.29 definition on Wikipedia].&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse; text-align: center; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
! Device&lt;br /&gt;
! Driver&lt;br /&gt;
! Connector&lt;br /&gt;
! Supported standard&lt;br /&gt;
! Current draw&lt;br /&gt;
! Suggested connection to Pandora&lt;br /&gt;
! Works on Pandora&lt;br /&gt;
! Additional comments&lt;br /&gt;
|-&lt;br /&gt;
| Cakewalk UA-1G&lt;br /&gt;
| not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 2.0&lt;br /&gt;
| 200mA&lt;br /&gt;
| Standard-A port&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| ID 0582:00e9 Roland Corp. This device may be similar to older Edirol/Roland USB audio devices. Runs and record under Slackware. Jack audio server realtime recording works. Recognized but not tested under official OS. A hub, powered or not, is needed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Input devices =&lt;br /&gt;
&lt;br /&gt;
Any HID ([http://en.wikipedia.org/wiki/Human_interface_device Human Interface Device]) compliant keyboard, mouse or game controller should work on the Pandora. Most of those device are low speed or full speed USB device and will need to be connected though either a USB OTG adapter/cable or a USB2 hub in order to work on the Pandora.&lt;br /&gt;
&lt;br /&gt;
== External Game Controllers ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse; text-align: center; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
! Device&lt;br /&gt;
! Driver&lt;br /&gt;
! Connector&lt;br /&gt;
! Supported standard&lt;br /&gt;
! Current draw&lt;br /&gt;
! Suggested connection to Pandora&lt;br /&gt;
! Tested on Pandora&lt;br /&gt;
! Additional comments&lt;br /&gt;
|-&lt;br /&gt;
| 2-TECH SNES-to-USB adapter&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| Low speed&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| Standard-A port via High Speed Hub&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| USB description is &amp;quot;HuiJia USB GamePad&amp;quot;, &amp;lt;tt&amp;gt;lsusb&amp;lt;/tt&amp;gt; calls it &amp;quot;0e8f:3013 GreenAsia Inc.&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| USB Super RetroPort (SNES-to-USB adapter)&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| {{Unknown|Probably USB 1.1}}&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| Standard-A port via High Speed Hub&lt;br /&gt;
| {{No}}&lt;br /&gt;
| Bought from [http://www.retrousb.com/product_info.php?cPath=21&amp;amp;products_id=29 RetroZone].  Works in Linux.&lt;br /&gt;
|-&lt;br /&gt;
| USB RetroPort (NES-to-USB adapter)&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| {{Unknown|Probably USB 1.1}}&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| Standard-A port via High Speed Hub&lt;br /&gt;
| {{No}}&lt;br /&gt;
| Bought from [http://www.retrousb.com/product_info.php?cPath=21&amp;amp;products_id=28 RetroZone].  Works in Linux.&lt;br /&gt;
|-&lt;br /&gt;
| Trio Linker Plus II (PlayStation,-GameCube,-and-Dreamcast-to-USB adapter)&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| {{Unknown|Probably USB 1.1}}&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| Standard-A port via High Speed Hub&lt;br /&gt;
| {{No}}&lt;br /&gt;
| Bought from [http://www.play-asia.com/paOS-13-71-6m-49-en-70-1zfv.html Play-Asia].  Works in Linux.&lt;br /&gt;
|-&lt;br /&gt;
| NAZAR V47 USB Force Feedback Vibrating Gamepad Controller for PC&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| {{Unknown|Probably USB 1.1}}&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| Standard-A port via High Speed Hub&lt;br /&gt;
| {{No}}&lt;br /&gt;
| Whether it really contains the claimed force feedback feature is unknown as this feature does not work under Linux - bought from [http://www.dealextreme.com/details.dx/sku.24551 DealExtreme].  Works in Linux.&lt;br /&gt;
|-&lt;br /&gt;
| 10-Fire-Button Double Vibration Feedback USB PC Arcade Joystick&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| {{Unknown|Probably USB 1.1}}&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| Standard-A port via High Speed Hub&lt;br /&gt;
| {{No}}&lt;br /&gt;
| Whether it really contains the claimed force feedback feature is unknown as this feature does not work under Linux - bought from [http://www.dealextreme.com/details.dx/sku.27821 DealExtreme].  Works in Linux.&lt;br /&gt;
|-&lt;br /&gt;
| Official PlayStation 3 controller&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| Full speed&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| USB A To Mini B Cable via High Speed Hub&lt;br /&gt;
| {{No}}&lt;br /&gt;
| This is for USB not bluetooth compatibility. Sixaxis and DualShock not tested.  Works in Linux.&lt;br /&gt;
|-&lt;br /&gt;
| Saitek PLC Cyborg Force Rumble Pad (P2500) - 06a3:ff0c&lt;br /&gt;
| {{unknown}}&lt;br /&gt;
| Standard-A&lt;br /&gt;
| {{unknown}}&lt;br /&gt;
| 5V&lt;br /&gt;
| Standard-A port via High Speed Hub&lt;br /&gt;
| {{Unknown|Not fully tested}}&lt;br /&gt;
| Partial test attempted 2012-06-24 by [[user:spiralofhope|spiralofhope]].  lsusb lists it.  More testing required.  {{HideableNotes|A gamepad testing procedure needs to be defined.  See [[Joystick testing]].}}&lt;br /&gt;
|-&lt;br /&gt;
| Thrustmaster Firestorm Digital 3 Gamepad&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| Low speed&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| Standard-A port via High Speed Hub&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| ID 07b5:0213 Mega World International, Ltd Thrustmaster Firestorm Digital 3 Gamepad.&lt;br /&gt;
|-&lt;br /&gt;
| Wired Xbox 360 Controller&lt;br /&gt;
| xpad module&lt;br /&gt;
| Standard-A&lt;br /&gt;
| {{Unknown|Probably USB 1.1}}&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| Standard-A port via High Speed Hub&lt;br /&gt;
| {{No}}&lt;br /&gt;
| This also includes gamepads for PC that needs the Windows Xinput driver. Such gamepads include the Logitech Chillstream.  Works in Linux.&lt;br /&gt;
|-&lt;br /&gt;
| WiseGroup.,Ltd SmartJoy Dual PLUS Adapter (dual PSX to USB joypad adapter)&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| USB 1&lt;br /&gt;
| 100mA&lt;br /&gt;
| Standard-A port via USB 1-compatible High Speed Hub&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| ID 6677:8802.  Works in Linux.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Touchpads ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse; text-align: center; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
! Device&lt;br /&gt;
! Driver&lt;br /&gt;
! Connector&lt;br /&gt;
! Supported standard&lt;br /&gt;
! Current draw&lt;br /&gt;
! Suggested connection to Pandora&lt;br /&gt;
! Works on Pandora&lt;br /&gt;
! Additional comments&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.logitech.com/en-us/mice-pointers/mice/devices/8417 Logitech Wireless Touchpad]&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| Standard-A port via High Speed Hub&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| Left and right four-finger swipes aren't mapped to anything by default in XFCE. They can be mapped as keyboard shortcuts.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Graphics tablets ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse; text-align: center; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
! Device&lt;br /&gt;
! Driver&lt;br /&gt;
! Connector&lt;br /&gt;
! Supported standard&lt;br /&gt;
! Current draw&lt;br /&gt;
! Works on Pandora&lt;br /&gt;
! Additional comments&lt;br /&gt;
|-&lt;br /&gt;
| Bamboo Multitouch&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| {{No|No [http://www.gp32x.com/board/index.php?/topic/54728-pandora-owners-tried-tablet/page__view__findpost__p__881806]}}&lt;br /&gt;
| It's not known if this works in Linux.&lt;br /&gt;
|-&lt;br /&gt;
| Genius Tablet&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| {{Yes|Yes, [http://www.gp32x.com/board/index.php?/topic/54728-pandora-owners-tried-tablet/page__view__findpost__p__883140 via USB hub]}}&lt;br /&gt;
| It's not known if this works in Linux.&lt;br /&gt;
|-&lt;br /&gt;
| Wacom CTH-460&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| {{Unknown}}&lt;br /&gt;
| {{No|No [http://www.gp32x.com/board/index.php?/topic/54728-pandora-owners-tried-tablet/page__view__findpost__p__924422]}}&lt;br /&gt;
| Would need a patched driver to work.  It's not known if this works in Linux.&lt;br /&gt;
|-&lt;br /&gt;
| Wacom Volito2 Tablet (Model: CTF-420)&lt;br /&gt;
| Not required&lt;br /&gt;
| Standard-A&lt;br /&gt;
| Low speed&lt;br /&gt;
| 40mA [http://www.my-volito.com/volito/specs.asp?lang=en]&lt;br /&gt;
| {{No}}&lt;br /&gt;
| USB ID: 056a:0062&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Mice ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse; text-align: center; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
! Device&lt;br /&gt;
! Connector&lt;br /&gt;
! Works on Pandora&lt;br /&gt;
! Additional comments&lt;br /&gt;
|-&lt;br /&gt;
| Apple Mouse (M5769)&lt;br /&gt;
| USB&lt;br /&gt;
| {{No}}&lt;br /&gt;
| Seems to disable USB port, reboot afterwards required&lt;br /&gt;
|-&lt;br /&gt;
| Apple Mouse with Scroll Ball (A1152)&lt;br /&gt;
| USB&lt;br /&gt;
| {{Yes|Yes, needs a USB hub.}}&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Connectors, adapters, and hubs =&lt;br /&gt;
&lt;br /&gt;
This section is intended as a general guide. Items in this section are standard USB accessories, so drivers are not required. Compatibility with Pandora is assumed. Please note that any external product links are provided for reference only, and are not an endorsement.&lt;br /&gt;
&lt;br /&gt;
== OTG (On The Go) Adapters ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse; text-align: center; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
! Device&lt;br /&gt;
! Works on Pandora&lt;br /&gt;
! Additional comments&lt;br /&gt;
|-&lt;br /&gt;
| Generic adapter&lt;br /&gt;
| {{No}}&lt;br /&gt;
| [http://shop.ebay.com/?_from=R40&amp;amp;_trksid=p3907.m38.l1313&amp;amp;_nkw=usb+otg+host+cable&amp;amp;_sacat=See-All-Categories Find on eBay] [http://www.amazon.co.uk/s/ref=nb_ss_ce?url=search-alias%3Delectronics&amp;amp;field-keywords=OTG+Cable+Adapter&amp;amp;x=3&amp;amp;y=23 Find on Amazon] These links are not 100% accurate. Check for `mini-a`, and on eBay, the price is higher by about $8.&lt;br /&gt;
|-&lt;br /&gt;
|Hama 00074214&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
|[http://www.hama.de/00074214/hama-mini-usb-adapter-mini-usb-a-plug-usb-a-socket-015-m Manufacturer Page]&lt;br /&gt;
|-&lt;br /&gt;
| Nokia USB OTG adapter&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| [http://www.electronicproductonline.com/catalog/product_info.php?cPath=35_67&amp;amp;products_id=2043 Electronic Product Online]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Compact USB Hubs ==&lt;br /&gt;
&lt;br /&gt;
Be sure to enable USB-host!&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse; text-align: center; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
! Device&lt;br /&gt;
! Works on Pandora&lt;br /&gt;
! Additional comments&lt;br /&gt;
|-&lt;br /&gt;
| Griffin SmartShare USB [http://www.griffintechnology.com/products/smartshare-usb]&lt;br /&gt;
| {{No}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Belkin F5U415 4 Port USB 2.0 Swivel Hub [http://catalog.belkin.com/IWCatProductPage.process?Product_Id=377085]&lt;br /&gt;
| {{No}}&lt;br /&gt;
| Comes with an optional power adapter.&lt;br /&gt;
|-&lt;br /&gt;
| Belkin F5U700 USB 2.0 7-Port Lighted Hub [http://www.belkin.com/uk/support/article/?lid=enu&amp;amp;pid=F5U700ea&amp;amp;aid=10289&amp;amp;scid=947]&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| Tested 2012-06-16 by [[user:spiralofhope|spiralofhope]] both with and without its power adapter.&lt;br /&gt;
|-&lt;br /&gt;
| Belkin F5U701 USB 2.0 7 Port Mobile Hub [http://www.belkin.com/IWCatProductPage.process?Product_Id=369788]&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| Tested by pabloh.  Comes with an optional power adapter.&lt;br /&gt;
|-&lt;br /&gt;
| ID 0e8f:0016 GreenAsia Inc. &lt;br /&gt;
| {{No}}&lt;br /&gt;
| Tested by tsh.  Labeled as high speed.  Bought from ebay.&lt;br /&gt;
|-&lt;br /&gt;
| ID 05e3:0608 Targus with Genesys Logic 4 Port USB 2.0 Hub&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| Tested by Kazuki. Works.&lt;br /&gt;
|-&lt;br /&gt;
|Trust 4 port netbook hub ID 05e3:0608&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| Tested by tsh.  Bought from [http://www.amazon.co.uk/gp/product/B0025X16AS Amazon].&lt;br /&gt;
|-&lt;br /&gt;
| High Speed 4 Port Mini USB 2.0 Hub for Laptop PC (non powered)&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| Octopus-style small cheap unpowered USB hub.  Bought from [http://cgi.benl.ebay.be/ws/eBayISAPI.dll?ViewItem&amp;amp;item=270538502843 ebay]&lt;br /&gt;
|-&lt;br /&gt;
| Keeptech USB 2.0 Hub (7 Ports) with Power Adapter, KT-UH703 [http://www.keeptech.com/books_show.php?id=144]&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| Tested by [[User:Esn|Esn]]. Works powered or unpowered.&lt;br /&gt;
|-&lt;br /&gt;
| Logitech Premium 4-Port USB Hub [http://www.logitech.com/en-in/notebook-products/usb-hubs/devices/3048]&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| LUPO 7-port USB 2.0 Hub (cheap octopus type which can be powered as there is dc socket)&lt;br /&gt;
| {{Partial|Yes. {{HideableNotes|Can use a power supply but wasn't tested with one.}}}}&lt;br /&gt;
| Tested by kilowatt. Bought from [http://www.amazon.co.uk/gp/product/B003BVDABG/ref=oss_product from amazon uk]&lt;br /&gt;
|-&lt;br /&gt;
| LogiLink USB 2.0 Hub 4-Port UA0086 [http://www.logilink.eu/showproduct/UA0086.htm]&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| Tested by Jones. Comes with an optional power adapter.&lt;br /&gt;
|-&lt;br /&gt;
| Rosewill RHB-220 4-port USB 2.0 Hub&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| Tested by Tyrant1919. Unpowered. Bought from [http://www.newegg.com/Product/Product.aspx?Item=N82E16817182168 Newegg].&lt;br /&gt;
|-&lt;br /&gt;
| i-rocks SLEEK HUB USB 2.0 4 Ports Hub [http://www.i-rocks.com/Product_detail.aspx?CLASS_ID=1036&amp;amp;PRODUCT_ID=1080]&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| Comes with an ac adapter, but can be used without. USB 1 devices works perfectly.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:USB]]&lt;br /&gt;
[[Category:List]]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Kernel_interface&amp;diff=26231</id>
		<title>Kernel interface</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Kernel_interface&amp;diff=26231"/>
		<updated>2012-10-03T09:33:08Z</updated>

		<summary type="html">&lt;p&gt;Notaz: /* vertical sync */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{hint|For apps use higher level libraries/interfaces like SDL, Qt, X or similar for your own good (portability). It may be impossible to retain this layout on some major hardware revision, let's say Pandora 3000, and your program will break. Also this requires some level of Linux programming knowledge.}}&lt;br /&gt;
&lt;br /&gt;
In case you need to write low level code (you can't/don't want to use high level libs like [[SDL]]), you can use [[kernel]] interface. This is the recommended way to access [[hardware]] (as opposed to [[GP2X]] style of accessing chip registers by mmap'ing /dev/mem), because in case hardware changes are needed in future, they could be handled by kernel and all programs would still work. It also should allow several programs to work at the same time and should be more stable.&lt;br /&gt;
&lt;br /&gt;
==Input==&lt;br /&gt;
[[Buttons]], [[keypad]], [[touchscreen]] and [[nubs]] are all exposed through Linux event interface (EVDEV). All devices are represented by '''/dev/input/eventX''' files, which can be opened, read and queried (using ioctl calls). The reads can be synchronous (the read will only return when user does something, like presses the button), or asynchronous (the system will report what changed since the last time you asked).&lt;br /&gt;
&lt;br /&gt;
{{warning&lt;br /&gt;
|Don't hardcode device filenames in your program!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
For example, currently /dev/input/event2 represents game buttons, but in future it may become touchscreen. Scan input device names instead, example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
for (i = 0; 1; i++)&lt;br /&gt;
{&lt;br /&gt;
  sprintf(name, &amp;quot;/dev/input/event%i&amp;quot;, i);&lt;br /&gt;
  fd = open(name, O_RDONLY);&lt;br /&gt;
  if (fd &amp;lt; 0) break; /* no more devices */&lt;br /&gt;
  ioctl(fd, EVIOCGNAME(sizeof(name)), name);&lt;br /&gt;
  if (strcmp(name, &amp;quot;gpio-keys&amp;quot;) == 0)&lt;br /&gt;
    return fd; /* found the buttons! */&lt;br /&gt;
  close(fd); /* we don't need this device */&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
List of device names and events they send:&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!name&lt;br /&gt;
!description&lt;br /&gt;
!event.type&lt;br /&gt;
!event.code&lt;br /&gt;
!event.value&lt;br /&gt;
|-&lt;br /&gt;
|keypad&lt;br /&gt;
|keypad&lt;br /&gt;
|EV_KEY&lt;br /&gt;
|KEY_0...KEY_Z, KEY_BACKSPACE, KEY_LEFTSHIFT, KEY_SPACE, KEY_ENTER, KEY_COMMA, KEY_DOT, KEY_FN&lt;br /&gt;
|0 - released&amp;lt;br&amp;gt; 1 - pressed&amp;lt;br&amp;gt; 2 - autorepeat event&lt;br /&gt;
|-&lt;br /&gt;
|gpio-keys&lt;br /&gt;
|game buttons&lt;br /&gt;
|EV_KEY&lt;br /&gt;
|KEY_UP, KEY_DOWN, KEY_LEFT, KEY_RIGHT, KEY_MENU (Pandora button), KEY_LEFTALT (Start), KEY_LEFTCTRL (Select), KEY_END (Y/North), KEY_HOME (A/East), KEY_PAGEDOWN (X/South), KEY_END (B/West), KEY_RIGHTSHIFT (Shoulder L), KEY_RIGHTCTRL (Shoulder R), KEY_KPPLUS (Shoulder L2), KEY_KPMINUS (Shoulder R2), KEY_COFFEE (Hold)&lt;br /&gt;
|0 - released&amp;lt;br&amp;gt; 1 - pressed&lt;br /&gt;
|-&lt;br /&gt;
|gpio-keys&lt;br /&gt;
|lid state&lt;br /&gt;
|EV_SW&lt;br /&gt;
|SW_LID&lt;br /&gt;
|0 - closing&amp;lt;br&amp;gt; 1 - opening&lt;br /&gt;
|-&lt;br /&gt;
|touchscreen&lt;br /&gt;
|touchscreen&lt;br /&gt;
|EV_ABS&lt;br /&gt;
|ABS_X, ABS_Y, ABS_PRESSURE&lt;br /&gt;
|varies, use calibration data&lt;br /&gt;
|-&lt;br /&gt;
|nub0&lt;br /&gt;
|left nub&lt;br /&gt;
|EV_ABS&lt;br /&gt;
|ABS_X, ABS_Y&lt;br /&gt;
| -256 (Left/Up)&amp;lt;br&amp;gt;0&amp;lt;br&amp;gt;+256 (Right/Down)&lt;br /&gt;
|-&lt;br /&gt;
|nub1&lt;br /&gt;
|right nub&lt;br /&gt;
|EV_ABS&lt;br /&gt;
|ABS_X, ABS_Y&lt;br /&gt;
| -256 (Left/Up))&amp;lt;br&amp;gt;0&amp;lt;br&amp;gt;+256 (Right/Down)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Sample code:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://beagleboard.googlecode.com/files/evtest.c evtest.c]&lt;br /&gt;
[http://git.openpandora.org/cgi-bin/gitweb.cgi?p=pandora-misc.git;a=blob;f=op_test_inputs.c;hb=HEAD op_test_inputs.c]&lt;br /&gt;
&lt;br /&gt;
===Nubs===&lt;br /&gt;
Nubs have 3 modes that can be switched during runtime: absolute, mouse, mbuttons; this can be done by writing one of those 3 strings to /proc/pandora/nubX/mode . On mode change /dev/input/event* device reenumeration starts and files belonging to nubs are recreated and must be reopened.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Warning:&amp;lt;/strong&amp;gt; it is not guaranteed that input files will finish recreating after a write to /proc/pandora/nubX/mode finishes, it is application's responsibility to wait until those files are available.&lt;br /&gt;
&lt;br /&gt;
To solve the above problem, the OS provides a helper script that will wait for enumeration to complete:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/usr/pandora/scripts/op_nubchange.sh &amp;lt;left_num_mode&amp;gt; &amp;lt;right_nub_mode&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
op_nubchange.sh is not available on HF6 or earlier firmwares, to support them, something like this could be used:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
if [ -e /usr/pandora/scripts/op_nubchange.sh ]; then&lt;br /&gt;
  /usr/pandora/scripts/op_nubchange.sh absolute absolute&lt;br /&gt;
else&lt;br /&gt;
  echo absolute &amp;gt; /proc/pandora/nub0/mode&lt;br /&gt;
  echo absolute &amp;gt; /proc/pandora/nub1/mode&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Touchscreen===&lt;br /&gt;
Event interface returns uncalibrated values directly from driver, so you need to use tslib or manage calibration yourself (using data from /etc/pointercal).&lt;br /&gt;
&lt;br /&gt;
===X11===&lt;br /&gt;
When using the direct kernel api for input, it is also important to stop X processing the events as well. To do this you can create an X window to eat the events. There is also a utility that comes with the Pandora to do this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
op_runfbapp ./yourapp&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
Pandora uses [[ALSA]], but it has [[OSS]] emulation enabled too, so [[GP2X]] code should work.&lt;br /&gt;
&lt;br /&gt;
==Video==&lt;br /&gt;
===Architecture===&lt;br /&gt;
Framebuffer device (/dev/fbX) is supported. There are 3 framebuffers available ('''/dev/fb0''', /dev/fb1 and /dev/fb2), which represent 3 graphics/video layers on [[OMAP3]] by default (but can be reconfigured). Only /dev/fb0 is enabled by default.&lt;br /&gt;
&lt;br /&gt;
[[OMAP3]] display subsystem is controlled by a driver known as [[DSS2]], which has various controls available on /sys/devices/platform/omapdss/ (but they are not meant to be changed by programs, so they are root writable only). The driver exposes 3 layers (called overlays) and 2 displays. Overlays 1 and 2 can perform hardware scaling on the fly using 5-tap poly-phase filter, overlay0 can not. Displays 0 and 1 represent LCD and TV respectively. By default the 3 framebuffers (/dev/fbX) are redirected to 3 overlays, which all output to the LCD. This configuration is not meant to be changed by programs, only firmware should manage these.&lt;br /&gt;
&lt;br /&gt;
===Basic usage===&lt;br /&gt;
====framebuffer interface====&lt;br /&gt;
Framebuffers can be accessed Linux fbdev interface:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
fbdev = open(&amp;quot;/dev/fb0&amp;quot;, O_RDONLY);&lt;br /&gt;
buffer = mmap(0, 800*480*2, PROT_WRITE, MAP_SHARED, fbdev, 0);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
(this is basic example, no error checks)&lt;br /&gt;
&lt;br /&gt;
the returned pointer can be used to draw on the screen.&lt;br /&gt;
&lt;br /&gt;
Be sure to #include &amp;lt;linux/fb.h&amp;gt; to get access to the FB device ioctl interface, and &amp;lt;sys/ioctl.h&amp;gt; for access to ioctl itself.&lt;br /&gt;
&lt;br /&gt;
====double buffering====&lt;br /&gt;
This can be achieved using FBIOPAN_DISPLAY ioctl system call. For this you need to mmap framebuffer of double size&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
buffer1 = mmap(0, 800*480*2 * 2, PROT_WRITE, MAP_SHARED, fbdev, 0);&lt;br /&gt;
buffer2 = (char *)mem + 800*480*2;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then to display buffer2 you would call:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct fb_var_screeninfo fbvar;&lt;br /&gt;
ioctl(fbdev, FBIOGET_VSCREENINFO, &amp;amp;fbvar);&lt;br /&gt;
fbvar.yoffset = 480;&lt;br /&gt;
ioctl(fbdev, FBIOPAN_DISPLAY, &amp;amp;fbvar);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
going back to buffer1 would be repeating above with fbvar.yoffset = 0. Tripple or quad buffering can be implemented using the same technique.&lt;br /&gt;
&lt;br /&gt;
====vertical sync====&lt;br /&gt;
Linux has standard FBIO_WAITFORVSYNC for this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
int arg = 0;&lt;br /&gt;
ioctl(fbdev, FBIO_WAITFORVSYNC, &amp;amp;arg);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
be sure to pass argument value 0 or it will not work.&lt;br /&gt;
&lt;br /&gt;
Some toolchains don't have FBIO_WAITFORVSYNC defined in &amp;lt;linux/fb.h&amp;gt;, in which case you can define it in the following manner:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#ifndef FBIO_WAITFORVSYNC&lt;br /&gt;
  #define FBIO_WAITFORVSYNC _IOW('F', 0x20, __u32)&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====hardware scaling====&lt;br /&gt;
Overlay1 (/dev/fb1) can be used to achieve hardware scaling. Technically overlay2 (fb2) can be used for this too, but it is planned to be used by the system for TV-out functionality, so don't use it. The overlay is configured using series of standard and OMAP specific ioctl calls, but the system ships with some tools to achieve this from scripts too. This way the framebuffer can be set up for some arbitrary size (say 320x240) and can output to LCD as 800x480 with hardware scaling.&lt;br /&gt;
Here is an example script:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ofbset -fb /dev/fb1 -pos 0 0 -size 800 480 -mem 307200 -en 1&lt;br /&gt;
fbset -fb /dev/fb1 -g 320 240 320 480 16&lt;br /&gt;
&lt;br /&gt;
./your_app_here&lt;br /&gt;
&lt;br /&gt;
ofbset -fb /dev/fb1 -pos 0 0 -size 0 0 -mem 0 -en 0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What it does:&lt;br /&gt;
* allocates OMAP DSS layer, asks video output to be 800x480 at position 0,0 (could set it to 640x480 at 80,0 instead to get centered 2x scaling of 320x240). 307200 bytes of video memory are allocated for 2 320x240 16bpp screens (for doublebuffering).&lt;br /&gt;
* sets video mode to 320x240@16bpp, virtual resolution 320x480 for doublebuffering.&lt;br /&gt;
* runs your app&lt;br /&gt;
* cleans the video layer on exit&lt;br /&gt;
&lt;br /&gt;
Now the program can act as if it works with 320x240 16bpp screen.&lt;br /&gt;
&lt;br /&gt;
====LCD refresh rate====&lt;br /&gt;
The OS has a dedicated script which can change the LCD refresh rate. It must be ran with sudo:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
sudo -n /usr/pandora/scripts/op_lcdrate.sh 50&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
From code, system() function can be used for this.&lt;br /&gt;
&lt;br /&gt;
'''Note''': this doesn't mean your program has to run as root to use this (it never should!), just run the script as shown above.&lt;br /&gt;
&lt;br /&gt;
===Hardware scaling filter control===&lt;br /&gt;
The hardware scaler in pandora uses poly-phase 5-tap 8-phase filter. It is described in 15.4.2.3.4 and 15.6.1.3 sections of TRM. There are 40 coefficients programmable for both horizontal and vertical resampling (vertical resampling might also use 3 taps/24 coefficients, it depends on available pixel clock).&lt;br /&gt;
====using predefined filters====&lt;br /&gt;
Just run 'sudo /usr/pandora/scripts/op_videofir.sh &amp;lt;name&amp;gt;', where name currently can be:&lt;br /&gt;
* default - the default filter from OMAP manual&lt;br /&gt;
* none - nearest neighbor&lt;br /&gt;
====using custom filters====&lt;br /&gt;
run 'sudo /usr/pandora/scripts/op_videofir.sh &amp;lt;basename&amp;gt;', where basename* files contains coefficient table. The script will look for &amp;lt;basename&amp;gt;_h, &amp;lt;basename&amp;gt;_v3 and &amp;lt;basename&amp;gt;_v5 files for 5-tap horizontal, 3-tap vertical and 5-tap vertical configurations respectively. Pass absolute or relative path for basename with './', like './something'. The coefficients should be in a form of table like described in TRM, for example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
  0   0 128   0   0&lt;br /&gt;
 -1  13 124  -8   0&lt;br /&gt;
 -2  30 112 -11  -1&lt;br /&gt;
 -5  51  95 -11  -2&lt;br /&gt;
  0  -9  73  73  -9&lt;br /&gt;
 -2 -11  95  51  -5&lt;br /&gt;
 -1 -11 112  30  -2&lt;br /&gt;
  0  -8 124  13  -1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
For 3-tap table, first and last columns should contain zeros.&lt;br /&gt;
&lt;br /&gt;
==LEDs and Display backlight==&lt;br /&gt;
The LEDs can be controlled via '''/sys/class/leds/''', and then a file [http://www.gp32x.com/board/index.php?s=&amp;amp;showtopic=45309&amp;amp;view=findpost&amp;amp;p=673593]:&lt;br /&gt;
* pandora::sd1&lt;br /&gt;
* pandora::sd2&lt;br /&gt;
* pandora::charger&lt;br /&gt;
* pandora::power&lt;br /&gt;
* pandora::bluetooth&lt;br /&gt;
* pandora::wifi&lt;br /&gt;
* pandora::keypad_bl&lt;br /&gt;
Backlight can be controlled via '''/sys/class/backlight/'''.&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
===Overclocking===&lt;br /&gt;
Can be performed by running a helper script&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo /usr/pandora/scripts/op_cpuspeed.sh X&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In case you want to do it from another program or non-interactively, you can use system() function (or similar) with:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo -n /usr/pandora/scripts/op_cpuspeed.sh -n X&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Note: you are advised not to change the clock explicitly from a program because optimal clock may differ on different pandora revisions, or somebody might want to run at different clock speed to save battery, CPU life, etc. . Let the user decide about the clock before running the program and set it using the system tools.&lt;br /&gt;
* Note: '-n' script argument is not available on pre-SuperZaxxon Final firmwares.&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Kernel]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=PND_nub_modes&amp;diff=26229</id>
		<title>PND nub modes</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=PND_nub_modes&amp;diff=26229"/>
		<updated>2012-09-27T16:30:22Z</updated>

		<summary type="html">&lt;p&gt;Notaz: update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{IntroNote | This page is a work in progress, the instructions in here may or may not work for you. They were copied from several forum posts (see inline references). For an introduction to PNDs, see [[PND quickstart]]. }}&lt;br /&gt;
&lt;br /&gt;
If you want a different nub behavior for certain PND applications, you can achieve this by using one of the presented methods here.&lt;br /&gt;
&lt;br /&gt;
== Rationale ==&lt;br /&gt;
&lt;br /&gt;
Why would you want to do this? Simple; at least one person has reported that, when playing a natively-ported FPS (like Duke Nukem or Quake, but not GoldenEye) on the Pandora, using the right nub as the mouse has proven to be more comfortable and less awkward. But switching nub modes manually is annoying; so let's have Linux do it for you!&lt;br /&gt;
&lt;br /&gt;
== Presented methods ONLY apply per PND, do not affect general behavior ==&lt;br /&gt;
&lt;br /&gt;
The methods below are crash save, as the nub behavior is changed by the process pnd_run.sh, which runs before AND after a PND is running. Thus even in the event that your PND application crashes, your nub configuration WILL be the same as before you started the PND with the custom nub behavior. (Source: [http://boards.openpandora.org/index.php?/topic/2860-tutorial-how-to-have-your-nubs-change-modes-upon-launching-of-a-pnd/page__view__findpost__p__118299 sebt3 forum post])&lt;br /&gt;
&lt;br /&gt;
== Method: Switch left/right nub unix devices ==&lt;br /&gt;
&lt;br /&gt;
Hint from: [http://boards.openpandora.org/index.php?/topic/2860-tutorial-how-to-have-your-nubs-change-modes-upon-launching-of-a-pnd/page__view__findpost__p__49157 Blue Protoman]&lt;br /&gt;
&lt;br /&gt;
=== Step 1 ===&lt;br /&gt;
You must download sebt3's new [[pnd_run.sh]] installer and run it. Get it [http://sebt3.openpandora.org/pnd/pnd_run_installer.pnd here].&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Note: This step is no longer required as of Hotfix 6 Alpha 1.'''&lt;br /&gt;
&lt;br /&gt;
=== Step 2 ===&lt;br /&gt;
Open a text editor and copy/paste this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;cat /proc/pandora/nub0/mode &amp;gt; /tmp/nub0mode_before&lt;br /&gt;
cat /proc/pandora/nub1/mode &amp;gt; /tmp/nub1mode_before&lt;br /&gt;
&lt;br /&gt;
/usr/pandora/scripts/op_nubchange.sh mbuttons mouse&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will back up your current nub modes, then switch them; the left will act as the mouse buttons, the right will act as the mouse. If you'd like, you can substitute &amp;quot;scroll&amp;quot; or &amp;quot;absolute&amp;quot; (joystick) in, depending on how you like your nubs. But you must save this as '''PND_pre_script.sh'''. Save it wherever you'd like, you will be moving it elsewhere later.&lt;br /&gt;
&lt;br /&gt;
Note: op_nubchange.sh script might not available in older firmwares. See [[Kernel_interface#Nubs|Kernel interface]] page for more information.&lt;br /&gt;
&lt;br /&gt;
=== Step 3 ===&lt;br /&gt;
Copy/paste this into the editor again. Different file this time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;nub0mode=`cat /tmp/nub0mode_before`&lt;br /&gt;
nub1mode=`cat /tmp/nub1mode_before`&lt;br /&gt;
/usr/pandora/scripts/op_nubchange.sh $nub0mode $nub1mode&lt;br /&gt;
&lt;br /&gt;
rm /tmp/nub0mode_before /tmp/nub1mode_before&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will restore your nub modes to what they were before, and delete the temporary files used to store them. You must save it as '''PND_post_script.sh'''.&lt;br /&gt;
&lt;br /&gt;
=== Step 4 ===&lt;br /&gt;
Simply copy these files into the appdata folder of your program of choice! Now you're done. If you want to test it, drag these files into the appdata of a program that runs windowed (like [[Comix|Comix]] or [[Deadbeef|Deadbeef]]), so you can test with the mouse. Simply delete the files if you no longer desire their effects.&lt;br /&gt;
&lt;br /&gt;
== Method: Switch between nub configurator presets ==&lt;br /&gt;
&lt;br /&gt;
Hint from: [http://boards.openpandora.org/index.php?/topic/2860-tutorial-how-to-have-your-nubs-change-modes-upon-launching-of-a-pnd/page__view__findpost__p__118405 Caine]&lt;br /&gt;
&lt;br /&gt;
=== Steps ===&lt;br /&gt;
* Start the nub configurator&lt;br /&gt;
* Create a profile for the setup you wish your application to use.&lt;br /&gt;
* Below, I'll assume a profile is created which is called joysticks which places both nubs in joystick mode.&lt;br /&gt;
* Create a file PND_pre_script.sh with this content:&lt;br /&gt;
** /usr/pandora/scripts/op_nubmode.py -s temp_profile -p joysticks&lt;br /&gt;
** This will store the current configuration in a profile called temp_profile and next will load the joysticks profile.&lt;br /&gt;
* Create a file PND_post_script.sh with this content:&lt;br /&gt;
** /usr/pandora/scripts/op_nubmode.py -p temp_profile -d temp_profile&lt;br /&gt;
** This will load the previously created profile temp_profile and will remove it afterwards.&lt;br /&gt;
* Simply copy the files PND_pre_script.sh and PND_post_script.sh into the appdata folder of your program of choice!&lt;br /&gt;
&lt;br /&gt;
=== Advantage ===&lt;br /&gt;
&lt;br /&gt;
Uses the GUI to easily create custom profiles without having to know where values are written to.&lt;br /&gt;
&lt;br /&gt;
=== Disadvantages ===&lt;br /&gt;
&lt;br /&gt;
* It is slower, uses some memory and writes profiles to NAND.&lt;br /&gt;
* If you want to avoid NAND-writes per launch and you always revert back to the same profile after launch then you can use static profiles without having to save and remove the current. E.g. something like:&lt;br /&gt;
** Before: /usr/pandora/scripts/op_nubmode.py -p joysticks&lt;br /&gt;
** After: /usr/pandora/scripts/op_nubmode.py -p Default&lt;br /&gt;
&lt;br /&gt;
[[Category:PND]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Keyboard]]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=PND_nub_modes&amp;diff=26228</id>
		<title>PND nub modes</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=PND_nub_modes&amp;diff=26228"/>
		<updated>2012-09-27T16:25:57Z</updated>

		<summary type="html">&lt;p&gt;Notaz: /* Step 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{IntroNote | This page is a work in progress, the instructions in here may or may not work for you. They were copied from several forum posts (see inline references). For an introduction to PNDs, see [[PND quickstart]]. }}&lt;br /&gt;
&lt;br /&gt;
If you want a different nub behavior for certain PND applications, you can achieve this by using one of the presented methods here.&lt;br /&gt;
&lt;br /&gt;
== Rationale ==&lt;br /&gt;
&lt;br /&gt;
Why would you want to do this? Simple; at least one person has reported that, when playing a natively-ported FPS (like Duke Nukem or Quake, but not GoldenEye) on the Pandora, using the right nub as the mouse has proven to be more comfortable and less awkward. But switching nub modes manually is annoying; so let's have Linux do it for you!&lt;br /&gt;
&lt;br /&gt;
== Presented methods ONLY apply per PND, do not affect general behavior ==&lt;br /&gt;
&lt;br /&gt;
The methods below are crash save, as the nub behavior is changed by the process pnd_run.sh, which runs before AND after a PND is running. Thus even in the event that your PND application crashes, your nub configuration WILL be the same as before you started the PND with the custom nub behavior. (Source: [http://boards.openpandora.org/index.php?/topic/2860-tutorial-how-to-have-your-nubs-change-modes-upon-launching-of-a-pnd/page__view__findpost__p__118299 sebt3 forum post])&lt;br /&gt;
&lt;br /&gt;
== Method: Switch left/right nub unix devices ==&lt;br /&gt;
&lt;br /&gt;
Hint from: [http://boards.openpandora.org/index.php?/topic/2860-tutorial-how-to-have-your-nubs-change-modes-upon-launching-of-a-pnd/page__view__findpost__p__49157 Blue Protoman]&lt;br /&gt;
&lt;br /&gt;
=== Step 1 ===&lt;br /&gt;
You must download sebt3's new [[pnd_run.sh]] installer and run it. Get it [http://sebt3.openpandora.org/pnd/pnd_run_installer.pnd here].&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Note: This step is no longer required as of Hotfix 6 Alpha 1.'''&lt;br /&gt;
&lt;br /&gt;
=== Step 2 ===&lt;br /&gt;
Open a text editor and copy/paste this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;cat /proc/pandora/nub0/mode &amp;gt; /tmp/nub0mode_before&lt;br /&gt;
cat /proc/pandora/nub1/mode &amp;gt; /tmp/nub1mode_before&lt;br /&gt;
&lt;br /&gt;
/usr/pandora/scripts/op_nubchange.sh mbuttons mouse&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will back up your current nub modes, then switch them; the left will act as the mouse buttons, the right will act as the mouse. If you'd like, you can substitute &amp;quot;scroll&amp;quot; or &amp;quot;absolute&amp;quot; (joystick) in, depending on how you like your nubs. But you must save this as '''PND_pre_script.sh'''. Save it wherever you'd like, you will be moving it elsewhere later.&lt;br /&gt;
&lt;br /&gt;
Note: op_nubchange.sh script might not available in older firmwares. See [[Kernel_interface#Nubs|Kernel interface]] page for more information.&lt;br /&gt;
&lt;br /&gt;
=== Step 3 ===&lt;br /&gt;
Copy/paste this into the editor again. Different file this time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;cat /tmp/nub0mode_before &amp;gt; /proc/pandora/nub0/mode&lt;br /&gt;
cat /tmp/nub1mode_before &amp;gt; /proc/pandora/nub1/mode&lt;br /&gt;
&lt;br /&gt;
rm /tmp/nub0mode_before /tmp/nub1mode_before&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will restore your nub modes to what they were before, and delete the temporary files used to store them. You must save it as '''PND_post_script.sh'''.&lt;br /&gt;
&lt;br /&gt;
=== Step 4 ===&lt;br /&gt;
Simply copy these files into the appdata folder of your program of choice! Now you're done. If you want to test it, drag these files into the appdata of a program that runs windowed (like [[Comix|Comix]] or [[Deadbeef|Deadbeef]]), so you can test with the mouse. Simply delete the files if you no longer desire their effects.&lt;br /&gt;
&lt;br /&gt;
== Method: Switch between nub configurator presets ==&lt;br /&gt;
&lt;br /&gt;
Hint from: [http://boards.openpandora.org/index.php?/topic/2860-tutorial-how-to-have-your-nubs-change-modes-upon-launching-of-a-pnd/page__view__findpost__p__118405 Caine]&lt;br /&gt;
&lt;br /&gt;
=== Steps ===&lt;br /&gt;
* Start the nub configurator&lt;br /&gt;
* Create a profile for the setup you wish your application to use.&lt;br /&gt;
* Below, I'll assume a profile is created which is called joysticks which places both nubs in joystick mode.&lt;br /&gt;
* Create a file PND_pre_script.sh with this content:&lt;br /&gt;
** /usr/pandora/scripts/op_nubmode.py -s temp_profile -p joysticks&lt;br /&gt;
** This will store the current configuration in a profile called temp_profile and next will load the joysticks profile.&lt;br /&gt;
* Create a file PND_post_script.sh with this content:&lt;br /&gt;
** /usr/pandora/scripts/op_nubmode.py -p temp_profile -d temp_profile&lt;br /&gt;
** This will load the previously created profile temp_profile and will remove it afterwards.&lt;br /&gt;
* Simply copy the files PND_pre_script.sh and PND_post_script.sh into the appdata folder of your program of choice!&lt;br /&gt;
&lt;br /&gt;
=== Advantage ===&lt;br /&gt;
&lt;br /&gt;
Uses the GUI to easily create custom profiles without having to know where values are written to.&lt;br /&gt;
&lt;br /&gt;
=== Disadvantages ===&lt;br /&gt;
&lt;br /&gt;
* It is slower, uses some memory and writes profiles to NAND.&lt;br /&gt;
* If you want to avoid NAND-writes per launch and you always revert back to the same profile after launch then you can use static profiles without having to save and remove the current. E.g. something like:&lt;br /&gt;
** Before: /usr/pandora/scripts/op_nubmode.py -p joysticks&lt;br /&gt;
** After: /usr/pandora/scripts/op_nubmode.py -p Default&lt;br /&gt;
&lt;br /&gt;
[[Category:PND]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Keyboard]]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Kernel_status&amp;diff=22778</id>
		<title>Kernel status</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Kernel_status&amp;diff=22778"/>
		<updated>2012-08-31T16:20:28Z</updated>

		<summary type="html">&lt;p&gt;Notaz: update out-of-date stuff&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
The first [[firmware]] release was based on a heavily patched linux-2.6.27-omap1 kernel. linux-omap used to be OMAP community kernel fork, nowadays its code was either merged to mainline or dropped. Further OMAP development continues on mainline kernels, linux-omap tree is mainly used to queue developed code to mainline.&lt;br /&gt;
&lt;br /&gt;
Current firmware releases are based on 3.x kernel series.&lt;br /&gt;
&lt;br /&gt;
= Status =&lt;br /&gt;
Driver support in 3.x series is more or less complete, however not all parts are merged to mainline kernel due to various reasons.&lt;br /&gt;
&lt;br /&gt;
== merged code (already in mainline as of 3.4) ==&lt;br /&gt;
* board support (enables UART, I2C, SPI, RTC, MMC{1,2,3}, NAND, OTG, EHCI, gpio-keys, leds-gpio, keypad, touchscreen, regulators)&lt;br /&gt;
* sound: [[ALSA]] ASoC machine driver&lt;br /&gt;
* [[bq27500]] fuel gauge&lt;br /&gt;
* LCD panel driver&lt;br /&gt;
* wl1251 [[wifi driver]] glue (portions only in 2.6.37)&lt;br /&gt;
* charging (partial only, 2.6.37)&lt;br /&gt;
* [[wl1251]] complete powerdown/suspend using runtime_pm (2.6.38).&lt;br /&gt;
* backlight driver (3.4)&lt;br /&gt;
&lt;br /&gt;
this doesn't list various bugfix patches to get above working :)&lt;br /&gt;
&lt;br /&gt;
== not merged ==&lt;br /&gt;
now in openpandora.org GIT (mainline merge status in brackets)&lt;br /&gt;
* nubs (aka vsense, needs rework for mainline)&lt;br /&gt;
* keypad fn handling (not allowed in mainline)&lt;br /&gt;
* PWM LEDs (needs rework)&lt;br /&gt;
* Overclocking support&lt;br /&gt;
* some charging bits (too many hacks)&lt;br /&gt;
* various random hacks that benefit pandora but may harm other devices, hence mainline incompatible&lt;br /&gt;
&lt;br /&gt;
= openpandora.org git structure =&lt;br /&gt;
{{merge|Firmware governance}}&lt;br /&gt;
Support for various kernels is available in pandora-XX branches or tags, XX corresponds to last part of kernel version number. 2.6.27 is an exception, it's in pandora-27-omap1 branch.&lt;br /&gt;
&lt;br /&gt;
Branches based on pre-release -rc kernels will be often rebased. This means you can't do 'git pull' on them, use 'git fetch; git reset --hard origin/pandora-XX' instead. '''Warning''': this will destroy all your changes (even if they are commited), backup them first!&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* [[Firmware governance]]&lt;br /&gt;
&lt;br /&gt;
= Configuring newer kernels =&lt;br /&gt;
When compiling mainline kernel, use&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;make omap2plus_defconfig&amp;lt;/source&amp;gt;&lt;br /&gt;
for openpandora.org kernels you can use omap3_pandora_defconfig&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;make omap3_pandora_defconfig&amp;lt;/source&amp;gt;&lt;br /&gt;
after either of those are run, you can tune the configuration for your needs:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;make menuconfig&amp;lt;/source&amp;gt;&lt;br /&gt;
Now you should be able to build a working kernel. More info available at [[Kernel build instructions]].&lt;br /&gt;
&lt;br /&gt;
= Running =&lt;br /&gt;
Easiest way is to place your new uImage to root of SD ([[FAT]] or [[ext2]], ext2 may need a bootloader update) along with a file named '[[autoboot.txt]]', which contains u-boot commands such as:&lt;br /&gt;
 fatload mmc 0 0x80300000 uImage; bootm 0x80300000&lt;br /&gt;
Kernel bootargs can be changed by adding 'setenv' line before fatload:&lt;br /&gt;
 setenv bootargs debug root=...&lt;br /&gt;
&lt;br /&gt;
== serial port ==&lt;br /&gt;
In an unlikely event that you can get serial output from EXT port, be aware that serial device has changed several times (due to the driver and port configuration changes in the kernel):&lt;br /&gt;
* openpandora.org 2.6.27: ttyS0&lt;br /&gt;
* mainline upto 2.6.36: ttyS2&lt;br /&gt;
* mainline/openpandora.org 2.6.37 and up: ttyO2&lt;br /&gt;
This is relevant for console= bootarg.&lt;br /&gt;
&lt;br /&gt;
= Contributing =&lt;br /&gt;
Help is always welcome, usually in form of testing or writing patches. In most cases it's best to file a bug report or feature request in the [http://bugs.openpandora.org bug tracker] so that things don't get lost.&lt;br /&gt;
&lt;br /&gt;
== Submitting patches ==&lt;br /&gt;
It's best to send formal GIT-generated patch so that you get proper credit for your work and to make applying the patch easier. You can also add 'Signed-off-by' line ('-s' on 'git commit' will do it for you), which has [http://elinux.org/Developer_Certificate_Of_Origin the same meaning as for mainline Linux].&lt;br /&gt;
&lt;br /&gt;
So basic workflow would be:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;make changes&amp;gt;&lt;br /&gt;
git config --global user.name &amp;quot;My Name&amp;quot;&lt;br /&gt;
git config --global user.email &amp;quot;myname@domain.com&amp;quot;&lt;br /&gt;
git add &amp;lt;changed files&amp;gt;&lt;br /&gt;
git commit&lt;br /&gt;
git format-patch -o /somewhere/ -1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Then create a new feature request in bugtracker and attach the generated file(s), or send them to the [[Firmware_governance#Mailing_list|mailing list]], or post them on the forums, whatever is more convenient to you.&lt;br /&gt;
&lt;br /&gt;
[[Category:Official OpenPandora Development]]&lt;br /&gt;
[[Category:Kernel]]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Kernel_status&amp;diff=22741</id>
		<title>Kernel status</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Kernel_status&amp;diff=22741"/>
		<updated>2012-08-31T15:15:45Z</updated>

		<summary type="html">&lt;p&gt;Notaz: Submitting patches&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
The first [[firmware]] release is based on a heavily patched linux-2.6.27-omap1 kernel. linux-omap used to be OMAP community kernel fork, nowadays its code was either merged to mainline or dropped. Further OMAP development continues on mainline kernels, linux-omap tree is mainly used to queue developed code to mainline. So most of the interesting features that 2.6.27 lack (like sleep modes) are available there, but development effort is needed to port all drivers first.&lt;br /&gt;
&lt;br /&gt;
= Status =&lt;br /&gt;
This is mostly about pandora specific support for 2.6.35 or newer. Things that are already in mainline and come &amp;quot;for free&amp;quot; (like SD card support) are not mentioned.&lt;br /&gt;
&lt;br /&gt;
== merged code (already in mainline as of 2.6.36) ==&lt;br /&gt;
* board support (enables UART, I2C, SPI, RTC, MMC{1,2,3}, NAND, OTG, EHCI, gpio-keys, leds-gpio, keypad, touchscreen, regulators)&lt;br /&gt;
* sound: [[ALSA]] ASoC machine driver&lt;br /&gt;
* [[bq27500]] fuel gauge&lt;br /&gt;
* LCD panel driver&lt;br /&gt;
* wl1251 [[wifi driver]] glue (portions only in 2.6.37)&lt;br /&gt;
* charging (partial only, 2.6.37)&lt;br /&gt;
* [[wl1251]] complete powerdown/suspend using runtime_pm (2.6.38).&lt;br /&gt;
&lt;br /&gt;
this doesn't list various bugfix patches to get above working :)&lt;br /&gt;
&lt;br /&gt;
== finished code, but not merged==&lt;br /&gt;
now in openpandora.org GIT (mainline merge status in brackets)&lt;br /&gt;
* nubs (aka vsense, needs rework for mainline)&lt;br /&gt;
* backlight driver (needs rework)&lt;br /&gt;
* keypad fn handling (not allowed in mainline)&lt;br /&gt;
* PWM LEDs (needs rework)&lt;br /&gt;
&lt;br /&gt;
== missing stuff ==&lt;br /&gt;
* Charging missing bits.&lt;br /&gt;
* Bluetooth. 2.6.27 has rather old Nokia code (not mainlined), Nokia device/maemo kernels need to be checked and later versions integrated from there. There is alternative to this: expose UART port and try to use userspace [[bluez]] drivers, but this could result in less efficient power saving (if any).&lt;br /&gt;
* low [[power modes]]. This requires lots of testing, support in drivers and board files.&lt;br /&gt;
* DSP mess: [http://elinux.org/BeagleBoard/DSP_Clarification gateway, bridge or link] ?&lt;br /&gt;
* more things that I forgot&lt;br /&gt;
&lt;br /&gt;
= openpandora.org git structure =&lt;br /&gt;
{{merge|Firmware governance}}&lt;br /&gt;
Support for various kernels is available in pandora-XX branches or tags, XX corresponds to last part of kernel version number. 2.6.27 is an exception, it's in pandora-27-omap1 branch.&lt;br /&gt;
&lt;br /&gt;
Branches based on pre-release -rc kernels will be often rebased. This means you can't do 'git pull' on them, use 'git fetch; git reset --hard origin/pandora-XX' instead. '''Warning''': this will destroy all your changes (even if they are commited), backup them first!&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* [[Firmware governance]]&lt;br /&gt;
&lt;br /&gt;
= Configuring newer kernels =&lt;br /&gt;
When compiling mainline kernel, use&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;make omap2plus_defconfig&amp;lt;/source&amp;gt;&lt;br /&gt;
for openpandora.org kernels you can use omap3_pandora_defconfig&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;make omap3_pandora_defconfig&amp;lt;/source&amp;gt;&lt;br /&gt;
after either of those are run, you can tune the configuration for your needs:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;make menuconfig&amp;lt;/source&amp;gt;&lt;br /&gt;
Now you should be able to build a working kernel. More info available at [[Kernel build instructions]].&lt;br /&gt;
&lt;br /&gt;
= Running =&lt;br /&gt;
Easiest way is to place your new uImage to root of SD ([[FAT]] or [[ext2]], ext2 may need a bootloader update) along with a file named '[[autoboot.txt]]', which contains u-boot commands such as:&lt;br /&gt;
 fatload mmc 0 0x80300000 uImage; bootm 0x80300000&lt;br /&gt;
Kernel bootargs can be changed by adding 'setenv' line before fatload:&lt;br /&gt;
 setenv bootargs debug console=ttyO2,115200n8 ...&lt;br /&gt;
&lt;br /&gt;
== serial port ==&lt;br /&gt;
In an unlikely event that you can get serial output from EXT port, be aware that serial device has changed several times (due to the driver and port configuration changes in the kernel):&lt;br /&gt;
* openpandora.org 2.6.27: ttyS0&lt;br /&gt;
* mainline upto 2.6.36: ttyS2&lt;br /&gt;
* mainline/openpandora.org 2.6.37 and up: ttyO2&lt;br /&gt;
This is relevant for console= bootarg.&lt;br /&gt;
&lt;br /&gt;
= Contributing =&lt;br /&gt;
Help is always welcome, usually in form of testing or writing patches. In most cases it's best to file a bug report or feature request in the [http://bugs.openpandora.org bug tracker] so that things don't get lost.&lt;br /&gt;
&lt;br /&gt;
== Submitting patches ==&lt;br /&gt;
It's best to send formal GIT-generated patch so that you get proper credit for your work and to make applying the patch easier. You can also add 'Signed-off-by' line ('-s' on 'git commit' will do it for you), which has [http://elinux.org/Developer_Certificate_Of_Origin the same meaning as for mainline Linux].&lt;br /&gt;
&lt;br /&gt;
So basic workflow would be:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;make changes&amp;gt;&lt;br /&gt;
git config --global user.name &amp;quot;My Name&amp;quot;&lt;br /&gt;
git config --global user.email &amp;quot;myname@domain.com&amp;quot;&lt;br /&gt;
git add &amp;lt;changed files&amp;gt;&lt;br /&gt;
git commit&lt;br /&gt;
git format-patch -o /somewhere/ -1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Then create a new feature request in bugtracker and attach the generated file(s), or send them to the [[Firmware_governance#Mailing_list|mailing list]], or post them on the forums, whatever is more convenient to you.&lt;br /&gt;
&lt;br /&gt;
[[Category:Official OpenPandora Development]]&lt;br /&gt;
[[Category:Kernel]]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Boot_setup&amp;diff=18717</id>
		<title>Boot setup</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Boot_setup&amp;diff=18717"/>
		<updated>2012-08-23T23:52:18Z</updated>

		<summary type="html">&lt;p&gt;Notaz: /* Set up your boot.txt */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
As described in the [[Introduction to firmware]] page, the Pandora is able to boot from an [[SD card]].&lt;br /&gt;
This tutorial explains the steps necessary to create an SD card with a copy of the Angstrom operating system which you can boot.&lt;br /&gt;
If you do not want to run these steps manually, there also exists a utility (as a standard [[PND]] package) which can guide you through that process: [http://www.pandorabits.org/?page=sd-installer Pandora SD installer]&lt;br /&gt;
&lt;br /&gt;
{{hint&lt;br /&gt;
|Note: This tutorial assumes you are using Linux, and gives examples which should run on your Pandora.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Get a copy of the firmware==&lt;br /&gt;
&lt;br /&gt;
There are methods you can use to get the data off your Pandora's [[NAND]], [http://www.gp32x.com/board/index.php?/topic/54290-up-to-date-firmware-tarball this topic] discusses them. It is easier, however, to just extract a tar file.&lt;br /&gt;
&lt;br /&gt;
*Take a look [http://openpandora.org/firmware/ here] (pandora-rootfs.tar.bz2 is what you want) and get the latest version from the official Open Pandora site. Note that this firmware version may be unstable and comes untested!&lt;br /&gt;
&lt;br /&gt;
*Download [http://pandora.digital52.com/downloads/Angstrom-pandora-xfce-image-glibc-ipk-2010.4-test-20100614-omap3-pandora.rootfs.tar.bz2 this old reference image] if you are having trouble with the first link.&lt;br /&gt;
&lt;br /&gt;
*If the two above don't work, you can download an [http://www.codejedi.com/pandora/libpnd/pandora-xfce-image-omap3-pandora-20101705-image-for-checking-fixes.tar.bz2 even older image].&lt;br /&gt;
&lt;br /&gt;
*You can also copy your running firmware on the NAND to the SD partition. This is shown in its own section below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Option 1: Use the GUI-driven SD installer tool==&lt;br /&gt;
&lt;br /&gt;
Instead of installing the firmware manually on the SD card (as described further below under &amp;quot;Option 2&amp;quot;), you may use the '''GUI-driven tool sd_installer.pnd by David Boucher''', which automates the entire process.&lt;br /&gt;
http://repo.openpandora.org/?page=detail&amp;amp;app=sd-install-2011-03-10 &lt;br /&gt;
&lt;br /&gt;
You only need the downloaded firmware tarball, the sd_installer.pnd and a suitable SD card.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Option 2: Manually install the OS on the SD card==&lt;br /&gt;
&lt;br /&gt;
===Partition your SD card===&lt;br /&gt;
&lt;br /&gt;
This is an optional step.&lt;br /&gt;
&lt;br /&gt;
If you want to slice your SD card into several partitions (see [[#Setting_up_mutliple-partition_SD_cards_for_booting|Setting up mutliple-partition SD cards]]), you can use the ''cfdisk'' command-line tool on the Pandora to create a partition table. Note that - as of Zaxxon HF5 - the Pandora firmware doesn't have a command to format FAT partitions, so if you want to use the FAT/ext2/swap - scheme, you'll have to format the first partition on another system later on (under Windows, use the Disk Management tool).&lt;br /&gt;
&lt;br /&gt;
Assuming your card is in the left slot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo cfdisk -z /dev/mmcblk0&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''WARNING: mmcblk0 will [http://bugs.openpandora.org/index.php?do=details&amp;amp;task_id=237 not necessarily be the left slot]. It's the first card that the system recognizes, which is ''usually'' the left slot (but not if you inserted an SD into the left slot after you had one in the right slot, for example). Please make sure before you do anything dangerous.'''&lt;br /&gt;
&lt;br /&gt;
cfdisk -z starts off with a clean partition table - if you want to see what's set up currently, use ''cfdisk /dev/mmcblk0''. &lt;br /&gt;
&lt;br /&gt;
Use only primary partitions (so you're limited to four slices).&lt;br /&gt;
&lt;br /&gt;
===Format SD card to ext2===&lt;br /&gt;
&lt;br /&gt;
You need to format your SD card to have a single ext2 partition; [[ext3]] also works&amp;lt;sup&amp;gt;[http://www.gp32x.com/board/index.php?/topic/54928-64gb-sdxc-cards/]&amp;lt;/sup&amp;gt; and is more reliable&amp;lt;sup&amp;gt;[http://www.gp32x.com/board/index.php?/topic/54928-64gb-sdxc-cards/page__view__findpost__p__901072]&amp;lt;/sup&amp;gt;. You can have a second, swap partition, as well if you like. There are command line tools you can use as well as GUI tools. &lt;br /&gt;
&lt;br /&gt;
====Using the command line====&lt;br /&gt;
Take care with using these command line tools, to be certain you are accessing the correct device. They will not ask you and will DESTROY any data on the device. This command will replace an existing partition with an empty EXT2 formatted filesystem (this includes the single FAT partition most SD cards come shipped with). Assuming ''/dev/mmcblk0p1'' for your SD device (left slot, first partition), ''LABELNAME'' for the partition:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkfs.ext2 -L LABELNAME /dev/mmcblk0p1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
If you run into problems with formatting the SD card, try unmounting it first:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo umount /media/[LABELNAME of SD card]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Using a GUI tool====&lt;br /&gt;
The GUI tools are simple enough that you shouldn't need someone to tell you how to use them. For now this is left as an exercise left for the reader (until someone wants to write up how to do it).&lt;br /&gt;
&lt;br /&gt;
===Copy and boot===&lt;br /&gt;
&lt;br /&gt;
====Copy the files to your SD card====&lt;br /&gt;
Navigate (cd) to the directory with the .tar.bz2 file you just downloaded (or made) and do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo tar -xvjf &amp;lt;tarfile&amp;gt;.tar.bz2 -C &amp;lt;SD card&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you're doing this on your Pandora, &amp;lt;SD card&amp;gt; is something like /media/mmcblk0p1 (first SD card slot on Pandora). On Ubuntu it would be something like /media/disk if it has no label. You can also try using GUI tools for this, but I didn't have very good luck with them.&lt;br /&gt;
&lt;br /&gt;
====OR copy your firmware from the NAND to the SD card====&lt;br /&gt;
&lt;br /&gt;
The following will ask for your password. All the operations need root permissions so I thought it would be wasteful to sprinkle sudo to everything.&lt;br /&gt;
We will bind mount the root fs to an alternative location (&amp;quot;/mp&amp;quot;), under which other filesystems mounted under root (like the kernel virtual filesystems /proc and /sys, and your SD card.) wont be visible. This allows us to take a live copy of the NAND contents to the SD filesystem.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo su&lt;br /&gt;
mkdir /mp&lt;br /&gt;
mount --bind / /mp&lt;br /&gt;
cp -va /mp/* /media/&amp;lt;SD card&amp;gt;&lt;br /&gt;
umount /mp&lt;br /&gt;
rmdir /mp&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Set up your boot.txt====&lt;br /&gt;
&lt;br /&gt;
Create a new file called [[boot.txt]] (or autoboot.txt if you want to boot automatically) and copy and paste the text below. Copy that file to the root of the root of the SD card.&lt;br /&gt;
&lt;br /&gt;
{{warning&lt;br /&gt;
|If you edit the file on Windows, use an advanced text editor like [http://notepad-plus-plus.org/ Notepad++] and be sure to convert to UNIX format (in NP++: Edit -&amp;gt; EOL Conversion -&amp;gt; UNIX format). If you have DOS linebreaks, ext2load will fail with an error like &amp;quot;file not found&amp;quot; as it appends an hidden character to the uImage file name.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
boot.txt (from the [http://openpandora.org/firmware/README.txt official firmware site])&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
setenv bootargs root=/dev/mmcblk0p1 rw rootwait vram=6272K omapfb.vram=0:3000K mmc_core.removable=0&lt;br /&gt;
ext2load mmc 0 0x80300000 /boot/uImage-3&lt;br /&gt;
bootm 0x80300000&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Note: depending on firmware version kernels might be at several, sometimes multiple locations, so you have to choose one:&lt;br /&gt;
* /boot/uImage-3 - the default 3.2 kernel (recommended)&lt;br /&gt;
* /lib/boot/uImage - alternative location of 3.2 kernel on certain older firmwares&lt;br /&gt;
* /boot/uImage - the old 2.6 kernel&lt;br /&gt;
&lt;br /&gt;
Be aware though that this boot.txt assumes you have formatted your card with ext2 and loads the kernel off the SD card. It is possible to boot the kernel from NAND with following boot.txt&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
setenv bootargs root=/dev/mmcblk0p1 rw rootwait vram=6272K omapfb.vram=0:3000K mmc_core.removable=0&lt;br /&gt;
ubi part boot &amp;amp;&amp;amp; ubifsmount boot &amp;amp;&amp;amp; ubifsload ${loadaddr} uImage &amp;amp;&amp;amp; bootm ${loadaddr} &amp;amp;&amp;amp; boot&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
However this is not recommended because kernel modules on SD card will likely be not compatible with kernel on NAND.&lt;br /&gt;
&lt;br /&gt;
Both boot.txt's assume you are booting from the left SD card slot, first partition. You can change &amp;quot;mmcblk0p1&amp;quot; to &amp;quot;mmcblk1p1&amp;quot; if you want to boot from the right slot (but boot.txt must still be on a card on the left slot).&lt;br /&gt;
Note: If you chose ext3 instead of ext2, the second line still starts with ext2load. There is no ext3load.&lt;br /&gt;
&lt;br /&gt;
====Setting up mutliple-partition SD cards for booting====&lt;br /&gt;
&lt;br /&gt;
It is possible to have several partitions on the SD card and boot from one of them.&lt;br /&gt;
E.g. if you have three partitions on the card like this:&lt;br /&gt;
*Partition 1: FAT&lt;br /&gt;
*Partition 2: ext2 (where the rootfs should be placed)&lt;br /&gt;
*Partition 3: swap&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
How it's done:&lt;br /&gt;
&lt;br /&gt;
1. Put uBoot's boot control files &amp;quot;boot.txt&amp;quot; and/or &amp;quot;autoboot.txt&amp;quot; into the root of the '''first partition''' of the card (FAT partition in this example) &lt;br /&gt;
&lt;br /&gt;
2. Make &amp;quot;boot.txt&amp;quot; and &amp;quot;autoboot.txt&amp;quot; point U-Boot to the '''partition, which holds the root file system''' of your Linux system. This would be parition 2 in this example (ext2 FS).&lt;br /&gt;
This is done '''using the &amp;quot;root&amp;quot; parameter of setenv'''.&lt;br /&gt;
&lt;br /&gt;
3. Make &amp;quot;boot.txt&amp;quot; and &amp;quot;autoboot.txt&amp;quot; point U-Boot to the correct '''location to boot your kernel from'''.&lt;br /&gt;
This kernel location can be any FAT or ext2/3/4 partition on the SD card.&lt;br /&gt;
The uBoot commands '''&amp;quot;fatload&amp;quot; and &amp;quot;ext2load&amp;quot; with their parameter &amp;quot;mmc x:y&amp;quot;''' are repsonsible for loading the kernel. Choose the command, which addresses the file system the kernel is located on and make sure to correctly adapt the values x and y.&lt;br /&gt;
&lt;br /&gt;
This common example boots the kernel from the FAT partition (then this is a &amp;quot;boot partition&amp;quot;), and uses the ext2 file system as root FS:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
setenv bootargs root=/dev/mmcblk0p2 rw rootwait vram=6272K omapfb.vram=0:3000K mmc_core.removable=0&lt;br /&gt;
fatload mmc 0:1 0x80300000 uimage&lt;br /&gt;
bootm 0x80300000&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you put the kernel into the root file system's /boot directory, the second line would be different:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
setenv bootargs root=/dev/mmcblk0p2 rw rootwait vram=6272K omapfb.vram=0:3000K mmc_core.removable=0&lt;br /&gt;
ext2load mmc 0:2 0x80300000 /boot/uImage&lt;br /&gt;
bootm 0x80300000&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note: '''&lt;br /&gt;
&lt;br /&gt;
For &amp;quot;root=&amp;quot; kernel argument, slot numbering begins at 0 (0 is left SD slot, 1 is right SD slot) and partition numbering begins at 1!&lt;br /&gt;
&lt;br /&gt;
For &amp;quot;mmc x:y&amp;quot; agrument of the fatload/ext2load commands, x is the card number (0 is left slot, 1 is right slot), y is the partition number, beginning at 1(!).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Recommendation:'''&lt;br /&gt;
&lt;br /&gt;
Put the kernel into another partition than the root FS is located.&lt;br /&gt;
Reason: In case the root FS partition is flagged &amp;quot;inconsistent&amp;quot; after a system crash or sudden SD card removal, uBoot won't be able to boot from that partition anymore. But the file system cleanup routines can only be run, once the kernel has been booted. Hence it's safer to put the kernel on a different partition.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Boot the system==&lt;br /&gt;
&lt;br /&gt;
As you power up the Pandora, hold the shoulder button R. A menu should appear, allowing you to boot from the SD card. (this step isn't necessary if you chose to create an autoboot.txt instead of boot.txt). Remember that this will be an un-configured image, taking a little while longer to boot, and giving the first-run dialogue.&lt;br /&gt;
&lt;br /&gt;
==Access the NAND==&lt;br /&gt;
Once you're booted into the system from SD, you may want access to the NAND rootfs. The following will let you do that.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo mkdir /mnt/nand&lt;br /&gt;
sudo ubiattach /dev/ubi_ctrl -m 4&lt;br /&gt;
sudo mount -t ubifs ubi0:rootfs /mnt/nand&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Other information==&lt;br /&gt;
An alternative approach to using an SD card to increase the space accessible to the system is [[Extend_Utils#OS_Extends | OS Extend]]. This allows the root filesystem to exist on more than one physical device.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
*[http://www.rjmitchell.ca/~jeff/blog2009/2010/06/07/pandora-running-firmware-from-sd-card-instead-of-nand-flash/ Skeezix's blog]&lt;br /&gt;
*[http://www.gp32x.com/board/index.php?/topic/54290-up-to-date-firmware-tarball GP32x Forum Topic, &amp;quot;Up to date firmware tarball&amp;quot;]&lt;br /&gt;
*[http://openpandora.org/firmware/ Official firmware page]&lt;br /&gt;
*[http://repo.openpandora.org/?page=detail&amp;amp;app=sd-install-2011-03-10 The GUI-driven SD installer by David Boucher]&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Booting]]&lt;br /&gt;
[[Category:Storage card]]&lt;br /&gt;
[[Category:Operating system]]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Overclocking&amp;diff=12198</id>
		<title>Overclocking</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Overclocking&amp;diff=12198"/>
		<updated>2012-08-01T11:56:01Z</updated>

		<summary type="html">&lt;p&gt;Notaz: /* CLI Commands */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Pandora's [[CPU]] can officially run at 600Mhz, but most Pandoras can also run at higher speeds. This can make CPU-intensive programs (such as an N64 emulator) run smoother. If you try a speed that's too high, your Pandora can freeze up. If this occurs, you can force a restart by holding the Pandora button and sliding the power switch to the right. If you still have problems, take out your battery for a minute before turning on your Pandora (this will discharge the backup capacitor that was designed to retain RTC while the battery is being changed &amp;lt;sup&amp;gt;[http://www.gp32x.com/board/index.php?/topic/57303-overclocking-broke-my-pandora/page__view__findpost__p__924479]&amp;lt;/sup&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How to Overclock==&lt;br /&gt;
'''Notes:'''&lt;br /&gt;
&lt;br /&gt;
The [[OMAP]] core will actually adjust its speed to match the load; you are setting the ''upper limit''. On its own, reducing the clock speed has little impact on battery life.&lt;br /&gt;
&lt;br /&gt;
The operating voltage is specified as an 'opp' in the range 1-5, with 3 being the default.&lt;br /&gt;
&lt;br /&gt;
===GUI Tools===&lt;br /&gt;
The OS comes with the ability to modify the CPU speed from the GUI. Under &amp;quot;System&amp;quot; in the menu, you should find &amp;quot;CPU-Speed&amp;quot;. This gives you a slider to set the desired MHz. Since [[Hot Fix 5]], the maximum and minimum values can be set by using a separate tool (previously, it was limited from 14 to 900MHz).&lt;br /&gt;
&lt;br /&gt;
A second tool was introduced in [[Hot Fix 5]] which allows you to set the maximum OPP level, define the minimum/maximum clock speeds, change the way the &amp;quot;CPU-Speed&amp;quot; script warns you, and define a default clock speed. This can be found under &amp;quot;Settings&amp;quot;, then &amp;quot;CPU-Settings&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===CLI Commands===&lt;br /&gt;
For anyone who likes using the terminal, here are some examples:&lt;br /&gt;
&lt;br /&gt;
To set OPP5:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;echo 5 &amp;gt; /proc/pandora/cpu_opp_max&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To set your CPU speed:&amp;lt;br&amp;gt;&lt;br /&gt;
see [[Kernel_interface#Overclocking|Overclocking]]&lt;br /&gt;
&lt;br /&gt;
==Voltage Scaling==&lt;br /&gt;
{{warning|OverVolting can potentially halve the life of your Pandora}}&lt;br /&gt;
OverVolting can be chieved by adjusting the [[Power_modes#Opperating_Point|operating point (OPP)]]&lt;br /&gt;
&lt;br /&gt;
At low frequencies, the [[OMAP]] can still work with a reduced voltage, and that causes it to drain the battery a little slower. Alternatively, you can increase the voltage and maybe get a higher overclock. '''This WILL reduce the lifetime of your Pandora.''' 3 is the default OPP.&lt;br /&gt;
&lt;br /&gt;
If you reduce the CPU speed below specific thresholds, the voltage will automatically adjust downwards.  If you set the OPP to 1 whilst still running at the default 500 MHz, your Pandora is very likely to crash. At 4, you may see almost as good an overclock performance as at 5.&lt;br /&gt;
&lt;br /&gt;
==App-specific Speed Control==&lt;br /&gt;
It is possible to auto configure specific applications to increase the CPU speed whilst running. Applications can be configured to prompt with a suggested speed, and you are given the option to select a speed, making the choice persistent if desired. This is done by placing a '''cpuspeed file''' in the /pandora/appdata/{pnd_name}/ directory. Delete the file to have the app ask again next time it is run.&lt;br /&gt;
Some apps, such as PCSX-rearmed, also allows on-the-go overclocking thanks to the sdk.&lt;br /&gt;
&lt;br /&gt;
==Warranty information==&lt;br /&gt;
OPP5 and 1Ghz is the maximum level that is covered by warranty.[http://boards.openpandora.org/index.php?/topic/2993-overclocking-questions/page__st__20__p__71694#entry71694]&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Optimization]]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Kernel_interface&amp;diff=12192</id>
		<title>Kernel interface</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Kernel_interface&amp;diff=12192"/>
		<updated>2012-08-01T11:52:56Z</updated>

		<summary type="html">&lt;p&gt;Notaz: overclocking&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{hint|For apps use higher level libraries/interfaces like SDL, Qt, X or similar for your own good (portability). It may be impossible to retain this layout on some major hardware revision, let's say Pandora 3000, and your program will break. Also this requires some level of Linux programming knowledge.}}&lt;br /&gt;
&lt;br /&gt;
In case you need to write low level code (you can't/don't want to use high level libs like [[SDL]]), you can use [[kernel]] interface. This is the recommended way to access [[hardware]] (as opposed to [[GP2X]] style of accessing chip registers by mmap'ing /dev/mem), because in case hardware changes are needed in future, they could be handled by kernel and all programs would still work. It also should allow several programs to work at the same time and should be more stable.&lt;br /&gt;
&lt;br /&gt;
==Input==&lt;br /&gt;
[[Buttons]], [[keypad]], [[touchscreen]] and [[nubs]] are all exposed through Linux event interface (EVDEV). All devices are represented by '''/dev/input/eventX''' files, which can be opened, read and queried (using ioctl calls). The reads can be synchronous (the read will only return when user does something, like presses the button), or asynchronous (the system will report what changed since the last time you asked).&lt;br /&gt;
&lt;br /&gt;
{{warning&lt;br /&gt;
|Don't hardcode device filenames in your program!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
For example, currently /dev/input/event2 represents game buttons, but in future it may become touchscreen. Scan input device names instead, example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
for (i = 0; 1; i++)&lt;br /&gt;
{&lt;br /&gt;
  sprintf(name, &amp;quot;/dev/input/event%i&amp;quot;, i);&lt;br /&gt;
  fd = open(name, O_RDONLY);&lt;br /&gt;
  if (fd &amp;lt; 0) break; /* no more devices */&lt;br /&gt;
  ioctl(fd, EVIOCGNAME(sizeof(name)), name);&lt;br /&gt;
  if (strcmp(name, &amp;quot;gpio-keys&amp;quot;) == 0)&lt;br /&gt;
    return fd; /* found the buttons! */&lt;br /&gt;
  close(fd); /* we don't need this device */&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
List of device names and events they send:&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!name&lt;br /&gt;
!description&lt;br /&gt;
!event.type&lt;br /&gt;
!event.code&lt;br /&gt;
!event.value&lt;br /&gt;
|-&lt;br /&gt;
|keypad&lt;br /&gt;
|keypad&lt;br /&gt;
|EV_KEY&lt;br /&gt;
|KEY_0...KEY_Z, KEY_BACKSPACE, KEY_LEFTSHIFT, KEY_SPACE, KEY_ENTER, KEY_COMMA, KEY_DOT, KEY_FN&lt;br /&gt;
|0 - released&amp;lt;br&amp;gt; 1 - pressed&amp;lt;br&amp;gt; 2 - autorepeat event&lt;br /&gt;
|-&lt;br /&gt;
|gpio-keys&lt;br /&gt;
|game buttons&lt;br /&gt;
|EV_KEY&lt;br /&gt;
|KEY_UP, KEY_DOWN, KEY_LEFT, KEY_RIGHT, KEY_MENU (Pandora button), KEY_LEFTALT (Start), KEY_LEFTCTRL (Select), KEY_END (Y/North), KEY_HOME (A/East), KEY_PAGEDOWN (X/South), KEY_END (B/West), KEY_RIGHTSHIFT (Shoulder L), KEY_RIGHTCTRL (Shoulder R), KEY_KPPLUS (Shoulder L2), KEY_KPMINUS (Shoulder R2), KEY_COFFEE (Hold)&lt;br /&gt;
|0 - released&amp;lt;br&amp;gt; 1 - pressed&lt;br /&gt;
|-&lt;br /&gt;
|gpio-keys&lt;br /&gt;
|lid state&lt;br /&gt;
|EV_SW&lt;br /&gt;
|SW_LID&lt;br /&gt;
|0 - closing&amp;lt;br&amp;gt; 1 - opening&lt;br /&gt;
|-&lt;br /&gt;
|touchscreen&lt;br /&gt;
|touchscreen&lt;br /&gt;
|EV_ABS&lt;br /&gt;
|ABS_X, ABS_Y, ABS_PRESSURE&lt;br /&gt;
|varies, use calibration data&lt;br /&gt;
|-&lt;br /&gt;
|nub0&lt;br /&gt;
|left nub&lt;br /&gt;
|EV_ABS&lt;br /&gt;
|ABS_X, ABS_Y&lt;br /&gt;
| -256 (Left/Up)&amp;lt;br&amp;gt;0&amp;lt;br&amp;gt;+256 (Right/Down)&lt;br /&gt;
|-&lt;br /&gt;
|nub1&lt;br /&gt;
|right nub&lt;br /&gt;
|EV_ABS&lt;br /&gt;
|ABS_X, ABS_Y&lt;br /&gt;
| -256 (Left/Up))&amp;lt;br&amp;gt;0&amp;lt;br&amp;gt;+256 (Right/Down)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Sample code:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://beagleboard.googlecode.com/files/evtest.c evtest.c]&lt;br /&gt;
[http://git.openpandora.org/cgi-bin/gitweb.cgi?p=pandora-misc.git;a=blob;f=op_test_inputs.c;hb=HEAD op_test_inputs.c]&lt;br /&gt;
&lt;br /&gt;
===Nubs===&lt;br /&gt;
Nubs have 3 modes that can be switched during runtime: absolute, mouse, mbuttons; this can be done by writing one of those 3 strings to /proc/pandora/nubX/mode . On mode change /dev/input/event* device reenumeration starts and files belonging to nubs are recreated and must be reopened.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Warning:&amp;lt;/strong&amp;gt; it is not guaranteed that input files will finish recreating after a write to /proc/pandora/nubX/mode finishes, it is application's responsibility to wait until those files are available.&lt;br /&gt;
&lt;br /&gt;
To solve the above problem, the OS provides a helper script that will wait for enumeration to complete:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/usr/pandora/scripts/op_nubchange.sh &amp;lt;left_num_mode&amp;gt; &amp;lt;right_nub_mode&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
op_nubchange.sh is not available on HF6 or earlier firmwares, to support them, something like this could be used:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
if [ -e /usr/pandora/scripts/op_nubchange.sh ]; then&lt;br /&gt;
  /usr/pandora/scripts/op_nubchange.sh absolute absolute&lt;br /&gt;
else&lt;br /&gt;
  echo absolute &amp;gt; /proc/pandora/nub0/mode&lt;br /&gt;
  echo absolute &amp;gt; /proc/pandora/nub1/mode&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Touchscreen===&lt;br /&gt;
Event interface returns uncalibrated values directly from driver, so you need to use tslib or manage calibration yourself (using data from /etc/pointercal).&lt;br /&gt;
&lt;br /&gt;
===X11===&lt;br /&gt;
When using the direct kernel api for input, it is also important to stop X processing the events as well. To do this you can create an X window to eat the events. There is also a utility that comes with the Pandora to do this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
op_runfbapp ./yourapp&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
Pandora uses [[ALSA]], but it has [[OSS]] emulation enabled too, so [[GP2X]] code should work.&lt;br /&gt;
&lt;br /&gt;
==Video==&lt;br /&gt;
===Architecture===&lt;br /&gt;
Framebuffer device (/dev/fbX) is supported. There are 3 framebuffers available ('''/dev/fb0''', /dev/fb1 and /dev/fb2), which represent 3 graphics/video layers on [[OMAP3]] by default (but can be reconfigured). Only /dev/fb0 is enabled by default.&lt;br /&gt;
&lt;br /&gt;
[[OMAP3]] display subsystem is controlled by a driver known as [[DSS2]], which has various controls available on /sys/devices/platform/omapdss/ (but they are not meant to be changed by programs, so they are root writable only). The driver exposes 3 layers (called overlays) and 2 displays. Overlays 1 and 2 can perform hardware scaling on the fly using 5-tap poly-phase filter, overlay0 can not. Displays 0 and 1 represent LCD and TV respectively. By default the 3 framebuffers (/dev/fbX) are redirected to 3 overlays, which all output to the LCD. This configuration is not meant to be changed by programs, only firmware should manage these.&lt;br /&gt;
&lt;br /&gt;
===Basic usage===&lt;br /&gt;
====framebuffer interface====&lt;br /&gt;
Framebuffers can be accessed Linux fbdev interface:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
fbdev = open(&amp;quot;/dev/fb0&amp;quot;, O_RDONLY);&lt;br /&gt;
buffer = mmap(0, 800*480*2, PROT_WRITE, MAP_SHARED, fbdev, 0);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
(this is basic example, no error checks)&lt;br /&gt;
&lt;br /&gt;
the returned pointer can be used to draw on the screen.&lt;br /&gt;
&lt;br /&gt;
Be sure to #include &amp;lt;linux/fb.h&amp;gt; to get access to the FB device ioctl interface, and &amp;lt;sys/ioctl.h&amp;gt; for access to ioctl itself.&lt;br /&gt;
&lt;br /&gt;
====double buffering====&lt;br /&gt;
This can be achieved using FBIOPAN_DISPLAY ioctl system call. For this you need to mmap framebuffer of double size&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
buffer1 = mmap(0, 800*480*2 * 2, PROT_WRITE, MAP_SHARED, fbdev, 0);&lt;br /&gt;
buffer2 = (char *)mem + 800*480*2;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then to display buffer2 you would call:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct fb_var_screeninfo fbvar;&lt;br /&gt;
ioctl(fbdev, FBIOGET_VSCREENINFO, &amp;amp;fbvar);&lt;br /&gt;
fbvar.yoffset = 480;&lt;br /&gt;
ioctl(fbdev, FBIOPAN_DISPLAY, &amp;amp;fbvar);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
going back to buffer1 would be repeating above with fbvar.yoffset = 0. Tripple or quad buffering can be implemented using the same technique.&lt;br /&gt;
&lt;br /&gt;
====vertical sync====&lt;br /&gt;
Linux has standard FBIO_WAITFORVSYNC for this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
int arg = 0;&lt;br /&gt;
ioctl(fbdev, FBIO_WAITFORVSYNC, &amp;amp;arg);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
be sure to pass argument value 0 or it will not work.&lt;br /&gt;
&lt;br /&gt;
Currently FBIO_WAITFORVSYNC is not defined in &amp;lt;linux/fb.h&amp;gt;, although this is in the process of modification. For now, define in the following manner:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#ifndef FBIO_WAITFORVSYNC&lt;br /&gt;
  #define FBIO_WAITFORVSYNC _IOW('F', 0x20, __u32)&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====hardware scaling====&lt;br /&gt;
Overlay1 (/dev/fb1) can be used to achieve hardware scaling. Technically overlay2 (fb2) can be used for this too, but it is planned to be used by the system for TV-out functionality, so don't use it. The overlay is configured using series of standard and OMAP specific ioctl calls, but the system ships with some tools to achieve this from scripts too. This way the framebuffer can be set up for some arbitrary size (say 320x240) and can output to LCD as 800x480 with hardware scaling.&lt;br /&gt;
Here is an example script:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ofbset -fb /dev/fb1 -pos 0 0 -size 800 480 -mem 307200 -en 1&lt;br /&gt;
fbset -fb /dev/fb1 -g 320 240 320 480 16&lt;br /&gt;
&lt;br /&gt;
./your_app_here&lt;br /&gt;
&lt;br /&gt;
ofbset -fb /dev/fb1 -pos 0 0 -size 0 0 -mem 0 -en 0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What it does:&lt;br /&gt;
* allocates OMAP DSS layer, asks video output to be 800x480 at position 0,0 (could set it to 640x480 at 80,0 instead to get centered 2x scaling of 320x240). 307200 bytes of video memory are allocated for 2 320x240 16bpp screens (for doublebuffering).&lt;br /&gt;
* sets video mode to 320x240@16bpp, virtual resolution 320x480 for doublebuffering.&lt;br /&gt;
* runs your app&lt;br /&gt;
* cleans the video layer on exit&lt;br /&gt;
&lt;br /&gt;
Now the program can act as if it works with 320x240 16bpp screen.&lt;br /&gt;
&lt;br /&gt;
====LCD refresh rate====&lt;br /&gt;
The OS has a dedicated script which can change the LCD refresh rate. It must be ran with sudo:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
sudo -n /usr/pandora/scripts/op_lcdrate.sh 50&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
From code, system() function can be used for this.&lt;br /&gt;
&lt;br /&gt;
'''Note''': this doesn't mean your program has to run as root to use this (it never should!), just run the script as shown above.&lt;br /&gt;
&lt;br /&gt;
===Hardware scaling filter control===&lt;br /&gt;
The hardware scaler in pandora uses poly-phase 5-tap 8-phase filter. It is described in 15.4.2.3.4 and 15.6.1.3 sections of TRM. There are 40 coefficients programmable for both horizontal and vertical resampling (vertical resampling might also use 3 taps/24 coefficients, it depends on available pixel clock).&lt;br /&gt;
====using predefined filters====&lt;br /&gt;
Just run 'sudo /usr/pandora/scripts/op_videofir.sh &amp;lt;name&amp;gt;', where name currently can be:&lt;br /&gt;
* default - the default filter from OMAP manual&lt;br /&gt;
* none - nearest neighbor&lt;br /&gt;
====using custom filters====&lt;br /&gt;
run 'sudo /usr/pandora/scripts/op_videofir.sh &amp;lt;basename&amp;gt;', where basename* files contains coefficient table. The script will look for &amp;lt;basename&amp;gt;_h, &amp;lt;basename&amp;gt;_v3 and &amp;lt;basename&amp;gt;_v5 files for 5-tap horizontal, 3-tap vertical and 5-tap vertical configurations respectively. Pass absolute or relative path for basename with './', like './something'. The coefficients should be in a form of table like described in TRM, for example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
  0   0 128   0   0&lt;br /&gt;
 -1  13 124  -8   0&lt;br /&gt;
 -2  30 112 -11  -1&lt;br /&gt;
 -5  51  95 -11  -2&lt;br /&gt;
  0  -9  73  73  -9&lt;br /&gt;
 -2 -11  95  51  -5&lt;br /&gt;
 -1 -11 112  30  -2&lt;br /&gt;
  0  -8 124  13  -1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
For 3-tap table, first and last columns should contain zeros.&lt;br /&gt;
&lt;br /&gt;
==LEDs and Display backlight==&lt;br /&gt;
The LEDs can be controlled via '''/sys/class/leds/''', and then a file [http://www.gp32x.com/board/index.php?s=&amp;amp;showtopic=45309&amp;amp;view=findpost&amp;amp;p=673593]:&lt;br /&gt;
* pandora::sd1&lt;br /&gt;
* pandora::sd2&lt;br /&gt;
* pandora::charger&lt;br /&gt;
* pandora::power&lt;br /&gt;
* pandora::bluetooth&lt;br /&gt;
* pandora::wifi&lt;br /&gt;
* pandora::keypad_bl&lt;br /&gt;
Backlight can be controlled via '''/sys/class/backlight/'''.&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
===Overclocking===&lt;br /&gt;
Can be performed by running a helper script&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo /usr/pandora/scripts/op_cpuspeed.sh X&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In case you want to do it from another program or non-interactively, you can use system() function (or similar) with:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo -n /usr/pandora/scripts/op_cpuspeed.sh -n X&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Note: you are advised not to change the clock explicitly from a program because optimal clock may differ on different pandora revisions, or somebody might want to run at different clock speed to save battery, CPU life, etc. . Let the user decide about the clock before running the program and set it using the system tools.&lt;br /&gt;
* Note: '-n' script argument is not available on pre-SuperZaxxon Final firmwares.&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Kernel]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Kernel_interface&amp;diff=10998</id>
		<title>Kernel interface</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Kernel_interface&amp;diff=10998"/>
		<updated>2012-07-03T12:11:37Z</updated>

		<summary type="html">&lt;p&gt;Notaz: /* Nubs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{hint|For apps use higher level libraries/interfaces like SDL, Qt, X or similar for your own good (portability). It may be impossible to retain this layout on some major hardware revision, let's say Pandora 3000, and your program will break. Also this requires some level of Linux programming knowledge.}}&lt;br /&gt;
&lt;br /&gt;
In case you need to write low level code (you can't/don't want to use high level libs like [[SDL]]), you can use [[kernel]] interface. This is the recommended way to access [[hardware]] (as opposed to [[GP2X]] style of accessing chip registers by mmap'ing /dev/mem), because in case hardware changes are needed in future, they could be handled by kernel and all programs would still work. It also should allow several programs to work at the same time and should be more stable.&lt;br /&gt;
&lt;br /&gt;
==Input==&lt;br /&gt;
[[Buttons]], [[keypad]], [[touchscreen]] and [[nubs]] are all exposed through Linux event interface (EVDEV). All devices are represented by '''/dev/input/eventX''' files, which can be opened, read and queried (using ioctl calls). The reads can be synchronous (the read will only return when user does something, like presses the button), or asynchronous (the system will report what changed since the last time you asked).&lt;br /&gt;
&lt;br /&gt;
{{warning&lt;br /&gt;
|Don't hardcode device filenames in your program!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
For example, currently /dev/input/event2 represents game buttons, but in future it may become touchscreen. Scan input device names instead, example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
for (i = 0; 1; i++)&lt;br /&gt;
{&lt;br /&gt;
  sprintf(name, &amp;quot;/dev/input/event%i&amp;quot;, i);&lt;br /&gt;
  fd = open(name, O_RDONLY);&lt;br /&gt;
  if (fd &amp;lt; 0) break; /* no more devices */&lt;br /&gt;
  ioctl(fd, EVIOCGNAME(sizeof(name)), name);&lt;br /&gt;
  if (strcmp(name, &amp;quot;gpio-keys&amp;quot;) == 0)&lt;br /&gt;
    return fd; /* found the buttons! */&lt;br /&gt;
  close(fd); /* we don't need this device */&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
List of device names and events they send:&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!name&lt;br /&gt;
!description&lt;br /&gt;
!event.type&lt;br /&gt;
!event.code&lt;br /&gt;
!event.value&lt;br /&gt;
|-&lt;br /&gt;
|keypad&lt;br /&gt;
|keypad&lt;br /&gt;
|EV_KEY&lt;br /&gt;
|KEY_0...KEY_Z, KEY_BACKSPACE, KEY_LEFTSHIFT, KEY_SPACE, KEY_ENTER, KEY_COMMA, KEY_DOT, KEY_FN&lt;br /&gt;
|0 - released&amp;lt;br&amp;gt; 1 - pressed&amp;lt;br&amp;gt; 2 - autorepeat event&lt;br /&gt;
|-&lt;br /&gt;
|gpio-keys&lt;br /&gt;
|game buttons&lt;br /&gt;
|EV_KEY&lt;br /&gt;
|KEY_UP, KEY_DOWN, KEY_LEFT, KEY_RIGHT, KEY_MENU (Pandora button), KEY_LEFTALT (Start), KEY_LEFTCTRL (Select), KEY_END (Y/North), KEY_HOME (A/East), KEY_PAGEDOWN (X/South), KEY_END (B/West), KEY_RIGHTSHIFT (Shoulder L), KEY_RIGHTCTRL (Shoulder R), KEY_KPPLUS (Shoulder L2), KEY_KPMINUS (Shoulder R2), KEY_COFFEE (Hold)&lt;br /&gt;
|0 - released&amp;lt;br&amp;gt; 1 - pressed&lt;br /&gt;
|-&lt;br /&gt;
|gpio-keys&lt;br /&gt;
|lid state&lt;br /&gt;
|EV_SW&lt;br /&gt;
|SW_LID&lt;br /&gt;
|0 - closing&amp;lt;br&amp;gt; 1 - opening&lt;br /&gt;
|-&lt;br /&gt;
|touchscreen&lt;br /&gt;
|touchscreen&lt;br /&gt;
|EV_ABS&lt;br /&gt;
|ABS_X, ABS_Y, ABS_PRESSURE&lt;br /&gt;
|varies, use calibration data&lt;br /&gt;
|-&lt;br /&gt;
|nub0&lt;br /&gt;
|left nub&lt;br /&gt;
|EV_ABS&lt;br /&gt;
|ABS_X, ABS_Y&lt;br /&gt;
| -256 (Left/Up)&amp;lt;br&amp;gt;0&amp;lt;br&amp;gt;+256 (Right/Down)&lt;br /&gt;
|-&lt;br /&gt;
|nub1&lt;br /&gt;
|right nub&lt;br /&gt;
|EV_ABS&lt;br /&gt;
|ABS_X, ABS_Y&lt;br /&gt;
| -256 (Left/Up))&amp;lt;br&amp;gt;0&amp;lt;br&amp;gt;+256 (Right/Down)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Sample code:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://beagleboard.googlecode.com/files/evtest.c evtest.c]&lt;br /&gt;
[http://git.openpandora.org/cgi-bin/gitweb.cgi?p=pandora-misc.git;a=blob;f=op_test_inputs.c;hb=HEAD op_test_inputs.c]&lt;br /&gt;
&lt;br /&gt;
===Nubs===&lt;br /&gt;
Nubs have 3 modes that can be switched during runtime: absolute, mouse, mbuttons; this can be done by writing one of those 3 strings to /proc/pandora/nubX/mode . On mode change /dev/input/event* device reenumeration starts and files belonging to nubs are recreated and must be reopened.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Warning:&amp;lt;/strong&amp;gt; it is not guaranteed that input files will finish recreating after a write to /proc/pandora/nubX/mode finishes, it is application's responsibility to wait until those files are available.&lt;br /&gt;
&lt;br /&gt;
To solve the above problem, the OS provides a helper script that will wait for enumeration to complete:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/usr/pandora/scripts/op_nubchange.sh &amp;lt;left_num_mode&amp;gt; &amp;lt;right_nub_mode&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
op_nubchange.sh is not available on HF6 or earlier firmwares, to support them, something like this could be used:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
if [ -e /usr/pandora/scripts/op_nubchange.sh ]; then&lt;br /&gt;
  /usr/pandora/scripts/op_nubchange.sh absolute absolute&lt;br /&gt;
else&lt;br /&gt;
  echo absolute &amp;gt; /proc/pandora/nub0/mode&lt;br /&gt;
  echo absolute &amp;gt; /proc/pandora/nub1/mode&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Touchscreen===&lt;br /&gt;
Event interface returns uncalibrated values directly from driver, so you need to use tslib or manage calibration yourself (using data from /etc/pointercal).&lt;br /&gt;
&lt;br /&gt;
===X11===&lt;br /&gt;
When using the direct kernel api for input, it is also important to stop X processing the events as well. To do this you can create an X window to eat the events. There is also a utility that comes with the Pandora to do this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
op_runfbapp ./yourapp&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
Pandora uses [[ALSA]], but it has [[OSS]] emulation enabled too, so [[GP2X]] code should work.&lt;br /&gt;
&lt;br /&gt;
==Video==&lt;br /&gt;
===Architecture===&lt;br /&gt;
Framebuffer device (/dev/fbX) is supported. There are 3 framebuffers available ('''/dev/fb0''', /dev/fb1 and /dev/fb2), which represent 3 graphics/video layers on [[OMAP3]] by default (but can be reconfigured). Only /dev/fb0 is enabled by default.&lt;br /&gt;
&lt;br /&gt;
[[OMAP3]] display subsystem is controlled by a driver known as [[DSS2]], which has various controls available on /sys/devices/platform/omapdss/ (but they are not meant to be changed by programs, so they are root writable only). The driver exposes 3 layers (called overlays) and 2 displays. Overlays 1 and 2 can perform hardware scaling on the fly using 5-tap poly-phase filter, overlay0 can not. Displays 0 and 1 represent LCD and TV respectively. By default the 3 framebuffers (/dev/fbX) are redirected to 3 overlays, which all output to the LCD. This configuration is not meant to be changed by programs, only firmware should manage these.&lt;br /&gt;
&lt;br /&gt;
===Basic usage===&lt;br /&gt;
====framebuffer interface====&lt;br /&gt;
Framebuffers can be accessed Linux fbdev interface:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
fbdev = open(&amp;quot;/dev/fb0&amp;quot;, O_RDONLY);&lt;br /&gt;
buffer = mmap(0, 800*480*2, PROT_WRITE, MAP_SHARED, fbdev, 0);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
(this is basic example, no error checks)&lt;br /&gt;
&lt;br /&gt;
the returned pointer can be used to draw on the screen.&lt;br /&gt;
&lt;br /&gt;
Be sure to #include &amp;lt;linux/fb.h&amp;gt; to get access to the FB device ioctl interface, and &amp;lt;sys/ioctl.h&amp;gt; for access to ioctl itself.&lt;br /&gt;
&lt;br /&gt;
====double buffering====&lt;br /&gt;
This can be achieved using FBIOPAN_DISPLAY ioctl system call. For this you need to mmap framebuffer of double size&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
buffer1 = mmap(0, 800*480*2 * 2, PROT_WRITE, MAP_SHARED, fbdev, 0);&lt;br /&gt;
buffer2 = (char *)mem + 800*480*2;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then to display buffer2 you would call:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct fb_var_screeninfo fbvar;&lt;br /&gt;
ioctl(fbdev, FBIOGET_VSCREENINFO, &amp;amp;fbvar);&lt;br /&gt;
fbvar.yoffset = 480;&lt;br /&gt;
ioctl(fbdev, FBIOPAN_DISPLAY, &amp;amp;fbvar);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
going back to buffer1 would be repeating above with fbvar.yoffset = 0. Tripple or quad buffering can be implemented using the same technique.&lt;br /&gt;
&lt;br /&gt;
====vertical sync====&lt;br /&gt;
Linux has standard FBIO_WAITFORVSYNC for this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
int arg = 0;&lt;br /&gt;
ioctl(fbdev, FBIO_WAITFORVSYNC, &amp;amp;arg);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
be sure to pass argument value 0 or it will not work.&lt;br /&gt;
&lt;br /&gt;
Currently FBIO_WAITFORVSYNC is not defined in &amp;lt;linux/fb.h&amp;gt;, although this is in the process of modification. For now, define in the following manner:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#ifndef FBIO_WAITFORVSYNC&lt;br /&gt;
  #define FBIO_WAITFORVSYNC _IOW('F', 0x20, __u32)&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====hardware scaling====&lt;br /&gt;
Overlay1 (/dev/fb1) can be used to achieve hardware scaling. Technically overlay2 (fb2) can be used for this too, but it is planned to be used by the system for TV-out functionality, so don't use it. The overlay is configured using series of standard and OMAP specific ioctl calls, but the system ships with some tools to achieve this from scripts too. This way the framebuffer can be set up for some arbitrary size (say 320x240) and can output to LCD as 800x480 with hardware scaling.&lt;br /&gt;
Here is an example script:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ofbset -fb /dev/fb1 -pos 0 0 -size 800 480 -mem 307200 -en 1&lt;br /&gt;
fbset -fb /dev/fb1 -g 320 240 320 480 16&lt;br /&gt;
&lt;br /&gt;
./your_app_here&lt;br /&gt;
&lt;br /&gt;
ofbset -fb /dev/fb1 -pos 0 0 -size 0 0 -mem 0 -en 0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What it does:&lt;br /&gt;
* allocates OMAP DSS layer, asks video output to be 800x480 at position 0,0 (could set it to 640x480 at 80,0 instead to get centered 2x scaling of 320x240). 307200 bytes of video memory are allocated for 2 320x240 16bpp screens (for doublebuffering).&lt;br /&gt;
* sets video mode to 320x240@16bpp, virtual resolution 320x480 for doublebuffering.&lt;br /&gt;
* runs your app&lt;br /&gt;
* cleans the video layer on exit&lt;br /&gt;
&lt;br /&gt;
Now the program can act as if it works with 320x240 16bpp screen.&lt;br /&gt;
&lt;br /&gt;
====LCD refresh rate====&lt;br /&gt;
The OS has a dedicated script which can change the LCD refresh rate. It must be ran with sudo:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
sudo -n /usr/pandora/scripts/op_lcdrate.sh 50&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
From code, system() function can be used for this.&lt;br /&gt;
&lt;br /&gt;
'''Note''': this doesn't mean your program has to run as root to use this (it never should!), just run the script as shown above.&lt;br /&gt;
&lt;br /&gt;
===Hardware scaling filter control===&lt;br /&gt;
The hardware scaler in pandora uses poly-phase 5-tap 8-phase filter. It is described in 15.4.2.3.4 and 15.6.1.3 sections of TRM. There are 40 coefficients programmable for both horizontal and vertical resampling (vertical resampling might also use 3 taps/24 coefficients, it depends on available pixel clock).&lt;br /&gt;
====using predefined filters====&lt;br /&gt;
Just run 'sudo /usr/pandora/scripts/op_videofir.sh &amp;lt;name&amp;gt;', where name currently can be:&lt;br /&gt;
* default - the default filter from OMAP manual&lt;br /&gt;
* none - nearest neighbor&lt;br /&gt;
====using custom filters====&lt;br /&gt;
run 'sudo /usr/pandora/scripts/op_videofir.sh &amp;lt;basename&amp;gt;', where basename* files contains coefficient table. The script will look for &amp;lt;basename&amp;gt;_h, &amp;lt;basename&amp;gt;_v3 and &amp;lt;basename&amp;gt;_v5 files for 5-tap horizontal, 3-tap vertical and 5-tap vertical configurations respectively. Pass absolute or relative path for basename with './', like './something'. The coefficients should be in a form of table like described in TRM, for example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
  0   0 128   0   0&lt;br /&gt;
 -1  13 124  -8   0&lt;br /&gt;
 -2  30 112 -11  -1&lt;br /&gt;
 -5  51  95 -11  -2&lt;br /&gt;
  0  -9  73  73  -9&lt;br /&gt;
 -2 -11  95  51  -5&lt;br /&gt;
 -1 -11 112  30  -2&lt;br /&gt;
  0  -8 124  13  -1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
For 3-tap table, first and last columns should contain zeros.&lt;br /&gt;
&lt;br /&gt;
==LEDs and Display backlight==&lt;br /&gt;
The LEDs can be controlled via '''/sys/class/leds/''', and then a file [http://www.gp32x.com/board/index.php?s=&amp;amp;showtopic=45309&amp;amp;view=findpost&amp;amp;p=673593]:&lt;br /&gt;
* pandora::sd1&lt;br /&gt;
* pandora::sd2&lt;br /&gt;
* pandora::charger&lt;br /&gt;
* pandora::power&lt;br /&gt;
* pandora::bluetooth&lt;br /&gt;
* pandora::wifi&lt;br /&gt;
* pandora::keypad_bl&lt;br /&gt;
Backlight can be controlled via '''/sys/class/backlight/'''.&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
Some things can be controlled through files in /proc/pandora/:&lt;br /&gt;
* '''/proc/pandora/cpu_mhz_max''' - if [http://www.kernel.org/pub/linux/utils/kernel/cpufreq/cpufreq.html cpufreq] is enabled, sets maximum allowed cpu clock, if not, just sets CPU clock to value supplied (echo 600 &amp;gt; /proc/pandora/cpu_mhz_max). Might also just use cpufreq parameters themselves.&lt;br /&gt;
more to come..&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Kernel]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Quickstart&amp;diff=10297</id>
		<title>Quickstart</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Quickstart&amp;diff=10297"/>
		<updated>2012-05-05T14:46:53Z</updated>

		<summary type="html">&lt;p&gt;Notaz: dropping hotfix part for now, new units come with SuperZaxxon and installing HF6 there will break the firmware&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{IntroNote | This Wiki is an unofficial community project, and Open Pandora Ltd. is not responsible for its content. Neither is the Wiki an official source of information about your device.}}&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
This page provides a very simple walk-through to get you up and running with playing music and installing [[games]]. It will not confuse you by providing choices, or by giving explanations. For that, you might want to go back to the [[Main Page]] of the wiki.&lt;br /&gt;
&lt;br /&gt;
==Power it up==&lt;br /&gt;
#You should have a power-supply, and a pandora with the [[battery]] already installed. If the battery is packed in it's shipping case, remove it and follow the printed instructions on correctly inserting it.&lt;br /&gt;
#Plug the [[charger]] into the mains, and into the Pandora. You might now need to wait up to 10 minutes. A green light at the right hand side should come on as the Pandora wakes up. Soon after, a red light will appear next to this.&lt;br /&gt;
#Whilst waiting to boot, 'write' with the [[stylus]] on some paper. This will polish the tip.&lt;br /&gt;
&lt;br /&gt;
==First Run Wizard==&lt;br /&gt;
Some information is needed at this stage in order to set up important stuff. Make sure you keep the charger plugged in.&lt;br /&gt;
#After booting, a dialogue will offer to shutdown, or start the configuration. Press 'Start Now' with the [[stylus]]&lt;br /&gt;
#The [[first run dialogue]] will appear and ask you to enter some information. Use the pointer and touchscreen or left nub to move the pointer, move the right nub to the left to ''click''&lt;br /&gt;
##Name (Conventionally your full name)&lt;br /&gt;
##Login (Must not contain spaces)&lt;br /&gt;
##Password (and confirmation). Do not forget this!&lt;br /&gt;
##Machine Name (Again no spaces. Short is good. How your machine appears on a network.)&lt;br /&gt;
##Select if you want to login automatically with no password prompt&lt;br /&gt;
##Prefered GUI (Use [[XFCE]] for this tutorial)&lt;br /&gt;
##Time Zone (can be changed later)&lt;br /&gt;
#Once done, Pandora will reboot. From this point it is safe to unplug from the mains&lt;br /&gt;
&lt;br /&gt;
==Around the XFCE screen==&lt;br /&gt;
[[image:Screen_layout.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Connect WiFi==&lt;br /&gt;
{{hint&lt;br /&gt;
|If your connection is slow, you chould try changing the channel of your WLAN to a higher value. You do this by going to your router's IP and changing the settings of your wireless network.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
This step is optional, you can use another PC to download apps to an [[SD card]] or [[USB]] stick.&lt;br /&gt;
# Click the menu buttton, click System, click Toggle [[WiFi]]&lt;br /&gt;
# The 3rd light on the left is red, and should come ON (WiFi)&lt;br /&gt;
# A popup might say networks are available.&lt;br /&gt;
# To the left of the battery indicator (a %charge and small run-time) is the network manager icon - A black square.&lt;br /&gt;
# Move the mouse with the left nub, and left click by moving the right nub to the left.&lt;br /&gt;
# Select your wireless connection. If you have security enabled, you will be prompted for details. You can also right click (nub to the right) to turn networking on and off. WiFi may sometimes be difficult to connect reliably.&lt;br /&gt;
# A spinning circle indicates the connection is in progress.&lt;br /&gt;
# A beacon icon shows the signal strength when connected &lt;br /&gt;
:[[image:Wifi_connected.jpg|Connected via WLAN]]&lt;br /&gt;
&lt;br /&gt;
==Download the codec pack==&lt;br /&gt;
This step is necessary because of different licensing laws in different countries. Please understand that you need to take responsibility for any patent restrictions which apply in your country. The codec pack also includes a video player (not fully optimised to used the DSP yet)&lt;br /&gt;
Note: You must perform the previous step in order to do this one!&lt;br /&gt;
# If not connected to WiFi, do this on another computer&lt;br /&gt;
# Click the blue globe icon (3rd from left)&lt;br /&gt;
# type open-pandora.org into the address bar, click on Community &amp;amp; Support&lt;br /&gt;
# Click on Updates &amp;amp; Firmware&lt;br /&gt;
# Click the ''Click here to download Community Codec Pack'' link for the codec pack&lt;br /&gt;
# Select ''save as''&lt;br /&gt;
# Scroll the left hand list down, select the name of your SD card or mmcblkxxx if your card is not labeled.&lt;br /&gt;
# Double click on the pandora folder (right nub up once)&lt;br /&gt;
# Double click on the apps folder (right nub up once)&lt;br /&gt;
# Click ''save''&lt;br /&gt;
# Wait for the download to finish&lt;br /&gt;
# Put the [[SD card]] in your pandora if done on a PC&lt;br /&gt;
# Press the pandora button in between the [[nubs]] (short press)&lt;br /&gt;
# Use the [[D-pad]] to scroll up to ''System'' then right, and down to ''Community Codec pack installer''. Press enter&lt;br /&gt;
# Follow the prompts and enter your password when requested&lt;br /&gt;
&lt;br /&gt;
==Play some Music==&lt;br /&gt;
Put your music in a folder somewhere on your [[SD card]], then open GNOME [[Mplayer]] and navigate to that folder (read [[Basic Linux Guide]] to learn about the directory structure on the Pandora).&lt;br /&gt;
&lt;br /&gt;
==Download a game==&lt;br /&gt;
Well, no instructions for a specific game, but for a simple starting point of legaly redistributable [[games]], [[emulators]] and ROMs, check out the [[PandaPacks]] which you can download, copy to SD card and just run. Or download something you like from the [[games]] list.&lt;br /&gt;
&lt;br /&gt;
==Switch to MiniMenu==&lt;br /&gt;
&lt;br /&gt;
Assuming you are in [[Xfce]] and using [[Hotfix 6]]:&lt;br /&gt;
# Open up the Xfce menu (on the bottom-left of your screen)&lt;br /&gt;
# Go to ''Switch GUI''&lt;br /&gt;
# Highlight [[MiniMenu]] and press ''OK''&lt;br /&gt;
&lt;br /&gt;
==Switch to Xfce==&lt;br /&gt;
&lt;br /&gt;
Assuming you are in [[MiniMenu]]:&lt;br /&gt;
# Go to ''System'', then ''Switch GUI''&lt;br /&gt;
# Highlight ''XFCE4'' and press ''OK''&lt;br /&gt;
&lt;br /&gt;
==Change the default GUI==&lt;br /&gt;
&lt;br /&gt;
# If in Xfce, open up the menu by pressing the Pandora button&lt;br /&gt;
# Go to ''Settings'', then ''Startup''&lt;br /&gt;
# Highlight ''Change Default GUI for current user'' and press ''OK''&lt;br /&gt;
# Highlight the GUI you want and press ''OK''&lt;br /&gt;
The next time you log in, the chosen GUI should load.&lt;br /&gt;
&lt;br /&gt;
==Fix known problems with the default installation==&lt;br /&gt;
It is assumed your are using Xfce for these fixes.  If you wish to switch back to MiniMenu after making these changes see above.&lt;br /&gt;
&lt;br /&gt;
===Take ownership of your desktop===&lt;br /&gt;
Your desktop is owned by root in the default installation.  Until this is fixed you won't be able to write to your desktop.&lt;br /&gt;
&lt;br /&gt;
# In Xfce, open up the menu by pressing the Pandora button&lt;br /&gt;
# Select ''Terminal'' from the menu.&lt;br /&gt;
# Type ''whoami'' and press [ENTER]&lt;br /&gt;
# Note your user-name which has just been printed to the terminal&lt;br /&gt;
# Type ''sudo chown {your user-name} Desktop''&lt;br /&gt;
# Enter your password and press [ENTER] if it is required&lt;br /&gt;
# Type ''sudo chgrp {your user-name) Desktop''&lt;br /&gt;
# Enter your password and press [ENTER] if it is required&lt;br /&gt;
&lt;br /&gt;
===Fix the installer's time-zone set-up===&lt;br /&gt;
There appears to be a problem with Pandora's [[first-run wizard]] that incorrectly sets up your time-zone.  This can cause confusing behaviour when you or a program attempts to change the system time.  Instructions are taken from this [http://boards.openpandora.org/index.php?/topic/34-anki-friendly-intelligent-flashcards/] board post.&lt;br /&gt;
&lt;br /&gt;
# In Xfce, open up the menu by pressing the Pandora button&lt;br /&gt;
# Select ''Terminal'' from the menu.&lt;br /&gt;
# Enter the following commands:&lt;br /&gt;
# ''cd /usr/share/zoneinfo''&lt;br /&gt;
# ''ls''&lt;br /&gt;
# Note the continents listed, such as ''America'' and ''Australia''&lt;br /&gt;
# Enter the following commands, where ''America'' is your continent:&lt;br /&gt;
# ''cd America''&lt;br /&gt;
# ''ls''&lt;br /&gt;
# Find a listed city in the same timezone as you&lt;br /&gt;
# Determine the full path of the file you have chosen.  For instance for the Eastern timezone use ''/usr/share/zoneinfo/America/New_York''&lt;br /&gt;
# Enter the following commands, replacing ''021915402011'' with the current date in ''MMDDHHMMYYYY'' format, and ''America/New_York'' with your city:&lt;br /&gt;
# ''sudo ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime''&lt;br /&gt;
# ''export TZ=America/New_York''&lt;br /&gt;
# ''echo &amp;quot;export TZ=America/New_York&amp;quot; &amp;gt;&amp;gt;~/.bashrc''&lt;br /&gt;
# ''date 021915402011''&lt;br /&gt;
&lt;br /&gt;
==Shutdown==&lt;br /&gt;
To really shutdown, the charger must not be plugged in. The Pandora will power up when the charger is plugged in.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From Xfce:&lt;br /&gt;
# Press the Pandora button for the menu.&lt;br /&gt;
# Select LogOut&lt;br /&gt;
# Select Shutdown&lt;br /&gt;
&lt;br /&gt;
From MiniMenu:&lt;br /&gt;
# Press the Select button&lt;br /&gt;
# Select ''Shutdown Pandora''&lt;br /&gt;
&lt;br /&gt;
If you're unable to shut down for whatever reason, try doing a [[Power_modes#Power_Off|hard shut-down]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Problems]]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=%C3%85ngstr%C3%B6m&amp;diff=10294</id>
		<title>Ångström</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=%C3%85ngstr%C3%B6m&amp;diff=10294"/>
		<updated>2012-05-05T14:26:45Z</updated>

		<summary type="html">&lt;p&gt;Notaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The original [[Zaxxon]] firmware has been updated with a number of Hotfixes. Since then, a newer firmware called SuperZaxxon has been released.&lt;br /&gt;
&lt;br /&gt;
'''Warning:''' if you do not have Zaxxon installed (boot screen says SuperZaxxon or something else), do not attempt to install any of these hofixes, doing so will break the system.&lt;br /&gt;
&lt;br /&gt;
=Hotfix 6=&lt;br /&gt;
*[http://boards.openpandora.org/index.php?/topic/5652-hotfix-6-final-released/ Information and discussion] (2011-10-10)&lt;br /&gt;
*[http://www.openpandora.org/downloads/Zaxxon-HF6.zip Full flash update] (will delete all prior user settings; useful if you've screwed something up and are not sure of how to fix it)&lt;br /&gt;
&lt;br /&gt;
==Bugs and solutions==&lt;br /&gt;
In general, the latest information about bugs will be on the official [http://bugs.openpandora.org/ bugtracker]; that is also the best place to go report a bug.&lt;br /&gt;
&lt;br /&gt;
===PNDs won't run===&lt;br /&gt;
So you can start Xfce, but you can no longer run any programs or switch to Minimenu since you upgraded to HF6? This can easily be solved without a reflash. To quote [http://boards.openpandora.org/index.php?app=forums&amp;amp;module=forums&amp;amp;section=findpost&amp;amp;pid=98627 valhalla], this problem is because of version 1.0-r58.5 of the pandora-scripts package that includes some files that it should not have included and conflicts with the new version of pandora-libpnd. That version is installed at least in HF5rc2.&lt;br /&gt;
&lt;br /&gt;
#Open a terminal in the location where you put your HF6 update PND. In the default file browser, you can do this by right-clicking in the folder where the PND is, and selecting &amp;quot;open terminal here&amp;quot;. For example, if you put it on your desktop (&amp;lt;code&amp;gt;/pandora/desktop&amp;lt;/code&amp;gt;), the text in the terminal to the left of your cursor should look something like &amp;lt;code&amp;gt;username-openpandora:/media/pandora/mmcblk0p1/pandora/desktop$&amp;lt;/code&amp;gt;&lt;br /&gt;
#type in &amp;lt;code&amp;gt;sudo mkdir /mnt/pnd&amp;lt;/code&amp;gt; and press &amp;quot;enter&amp;quot;. If it asks you for your password, type in what you use to log in to your Pandora, then press &amp;quot;enter&amp;quot;.&lt;br /&gt;
#type in &amp;lt;code&amp;gt;sudo mount -o loop HF6-Updater.pnd /mnt/pnd&amp;lt;/code&amp;gt; and press &amp;quot;enter&amp;quot;&lt;br /&gt;
#Now we'll go to the packages directory in the PND and reinstall a couple of packages. Type in &amp;lt;code&amp;gt;cd /mnt/pnd/packages/other/&amp;lt;/code&amp;gt; and press &amp;quot;enter&amp;quot;&lt;br /&gt;
#Type in &amp;lt;code&amp;gt;sudo opkg install pandora-libpnd_1.0-r56.5_armv7a.ipk&amp;lt;/code&amp;gt; and press &amp;quot;enter&amp;quot;&lt;br /&gt;
#Type in &amp;lt;code&amp;gt;sudo opkg install pandora-skel_1.0-r9.5_omap3-pandora.ipk&amp;lt;/code&amp;gt; and press &amp;quot;enter&amp;quot;&lt;br /&gt;
#To unmount the PND, type in &amp;lt;code&amp;gt;sudo umount /mnt/pnd&amp;lt;/code&amp;gt; and press &amp;quot;enter&amp;quot;. If it says it can't unmount it, just restart your Pandora.&lt;br /&gt;
#That's it, your pandora should work again!&lt;br /&gt;
&lt;br /&gt;
==Beta versions==&lt;br /&gt;
*[http://boards.openpandora.org/index.php?/topic/5616-hotfix-6-rc-released/ RC] (2011-10-07)&lt;br /&gt;
*[http://boards.openpandora.org/index.php?/topic/5320-zaxxon-hotfix-6-beta-1-released/ Beta 1] (2011-09-14)&lt;br /&gt;
*[http://boards.openpandora.org/index.php?/topic/4118-hotfix-6-alpha-4-released/ Alpha 4] (2011-06-21)&lt;br /&gt;
*[http://boards.openpandora.org/index.php?/topic/4065-hotfix-6-alpha-3-out/ Alpha 3] (2011-06-17)&lt;br /&gt;
*[http://boards.openpandora.org/index.php?/topic/4056-hotfix-6-alpha-2-is-out/ Alpha 2] (2011-06-16)&lt;br /&gt;
*[http://boards.openpandora.org/index.php?/topic/3955-hotfix-6-alpha-1-released/ Alpha 1] (2011-06-09)&lt;br /&gt;
&lt;br /&gt;
=Hotfix 5=&lt;br /&gt;
*Information and discussion: [http://boards.openpandora.org/index.php?/topic/2080-hotfix-5-released/ OP] [http://www.gp32x.com/board/index.php?/topic/58867-hotfix-5-released/ GP32X] (2011-03-04)&lt;br /&gt;
&lt;br /&gt;
==Beta versions==&lt;br /&gt;
*RC2: [http://boards.openpandora.org/index.php?/topic/1877-hotfix-5-rc2-last-one-before-going-final/ OP] [http://www.gp32x.com/board/index.php?/topic/58779-hotfix-5-rc2-last-one-before-going-final/ GP32X] (2011-02-22)&lt;br /&gt;
*RC1: [http://boards.openpandora.org/index.php?/topic/1572-hotfix-5-rc-1-ready-for-testing/ OP] [http://www.gp32x.com/board/index.php?/topic/58598-hotfix-5-rc-1-ready-for-testing/ GP32X] (2011-02-09)&lt;br /&gt;
*[http://boards.openpandora.org/index.php?/topic/1418-beta-test-upcoming-hf5-firmware-image-beta-4/ Beta 4] (2011-02-01)&lt;br /&gt;
*[http://boards.openpandora.org/index.php?/topic/1316-beta-test-upcoming-hf5-firmware-image-beta-3/ Beta 3] (2011-01-28)&lt;br /&gt;
*[http://boards.openpandora.org/index.php?/topic/1209-beta-test-upcoming-hf5-firmware-image-beta-2/ Beta 2] (2011-01-23)&lt;br /&gt;
*[http://boards.openpandora.org/index.php?/topic/1115-beta-test-upcoming-hf5-firmware-image/ Beta 1] (2011-01-17)&lt;br /&gt;
&lt;br /&gt;
=Hotfix 4=&lt;br /&gt;
*Information and discussion: [http://boards.openpandora.org/index.php?/topic/90-pandora-hotfix-4-final-released-2010-08-31/ OP] [http://www.gp32x.com/board/index.php?/topic/56385-hotfix-4-final-released/ GP32X] (2010-08-31)&lt;br /&gt;
&lt;br /&gt;
==Beta versions==&lt;br /&gt;
*Beta 4: [http://boards.openpandora.org/index.php?/topic/69-hotfix-4-beta-4-released/ OP] [http://www.gp32x.com/board/index.php?/topic/56361-hotfix-4-beta-4-pre-final/ GP32X] (2010-08-29)&lt;br /&gt;
*Beta 3: [http://boards.openpandora.org/index.php?/topic/17-hotfix-4-beta-3-released/ OP] [http://www.gp32x.com/board/index.php?/topic/56266-hotfix-4-beta-3-released/ GP32X] (2010-08-27)&lt;br /&gt;
*[http://www.gp32x.com/board/index.php?/topic/55965-hotfix-4-beta-2/ Beta 2] (2010-08-15)&lt;br /&gt;
*[http://www.gp32x.com/board/index.php?/topic/55788-hotfix-4-very-first-beta/ Beta 1] (2010-08-07)&lt;br /&gt;
&lt;br /&gt;
=Hotfix 3=&lt;br /&gt;
*[http://www.gp32x.com/board/index.php?/topic/54933-hotfix-3-released/ Information and discussion] (2010-07-01)&lt;br /&gt;
&lt;br /&gt;
==Beta versions==&lt;br /&gt;
*[http://www.gp32x.com/board/index.php?/topic/54852-pandora-hotfix-3-beta-2/ Beta 2] (2010-06-29)&lt;br /&gt;
*[http://www.gp32x.com/board/index.php?/topic/54724-pandora-hotfix-3-beta-test/ Beta 1] (2010-06-25)&lt;br /&gt;
&lt;br /&gt;
=Hotfix 2=&lt;br /&gt;
*[http://www.gp32x.com/board/index.php?/topic/54171-hotfix-2-for-zaxxon-released/ Information and discussion] (2010-06-08)&lt;br /&gt;
&lt;br /&gt;
==Beta versions==&lt;br /&gt;
*[http://www.gp32x.com/board/index.php?/topic/54137-pandora-hotfix-pack-2-for-zaxxon/ Beta 1] (2010-06-08)&lt;br /&gt;
&lt;br /&gt;
=Hotfix 1=&lt;br /&gt;
*[http://www.gp32x.com/board/index.php?/topic/53580-hotfix-pack-1-and-community-codec-pack-released/ Information and discussion] (2010-05-24)&lt;br /&gt;
&lt;br /&gt;
=Original firmware=&lt;br /&gt;
*You can download the very first release of the Pandora's [[Zaxxon]] firmware from [http://notaz.gp2x.de/releases/pandora/pandora-firmware-2010-05-01-Zaxxon.zip here] (2010-05-01)&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=%C3%85ngstr%C3%B6m&amp;diff=10292</id>
		<title>Ångström</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=%C3%85ngstr%C3%B6m&amp;diff=10292"/>
		<updated>2012-05-05T14:21:17Z</updated>

		<summary type="html">&lt;p&gt;Notaz: warn new users about hotfix mess&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The original [[Zaxxon]] firmware has been updated with a number of Hotfixes. Since then, a newer firmware called SuperZaxxon has been released.&lt;br /&gt;
&lt;br /&gt;
'''Warning:''' if you have SuperZaxxon installed, to not attempt to install any of these hofixes, doing so will break the system.&lt;br /&gt;
&lt;br /&gt;
=Hotfix 6=&lt;br /&gt;
*[http://boards.openpandora.org/index.php?/topic/5652-hotfix-6-final-released/ Information and discussion] (2011-10-10)&lt;br /&gt;
*[http://www.openpandora.org/downloads/Zaxxon-HF6.zip Full flash update] (will delete all prior user settings; useful if you've screwed something up and are not sure of how to fix it)&lt;br /&gt;
&lt;br /&gt;
==Bugs and solutions==&lt;br /&gt;
In general, the latest information about bugs will be on the official [http://bugs.openpandora.org/ bugtracker]; that is also the best place to go report a bug.&lt;br /&gt;
&lt;br /&gt;
===PNDs won't run===&lt;br /&gt;
So you can start Xfce, but you can no longer run any programs or switch to Minimenu since you upgraded to HF6? This can easily be solved without a reflash. To quote [http://boards.openpandora.org/index.php?app=forums&amp;amp;module=forums&amp;amp;section=findpost&amp;amp;pid=98627 valhalla], this problem is because of version 1.0-r58.5 of the pandora-scripts package that includes some files that it should not have included and conflicts with the new version of pandora-libpnd. That version is installed at least in HF5rc2.&lt;br /&gt;
&lt;br /&gt;
#Open a terminal in the location where you put your HF6 update PND. In the default file browser, you can do this by right-clicking in the folder where the PND is, and selecting &amp;quot;open terminal here&amp;quot;. For example, if you put it on your desktop (&amp;lt;code&amp;gt;/pandora/desktop&amp;lt;/code&amp;gt;), the text in the terminal to the left of your cursor should look something like &amp;lt;code&amp;gt;username-openpandora:/media/pandora/mmcblk0p1/pandora/desktop$&amp;lt;/code&amp;gt;&lt;br /&gt;
#type in &amp;lt;code&amp;gt;sudo mkdir /mnt/pnd&amp;lt;/code&amp;gt; and press &amp;quot;enter&amp;quot;. If it asks you for your password, type in what you use to log in to your Pandora, then press &amp;quot;enter&amp;quot;.&lt;br /&gt;
#type in &amp;lt;code&amp;gt;sudo mount -o loop HF6-Updater.pnd /mnt/pnd&amp;lt;/code&amp;gt; and press &amp;quot;enter&amp;quot;&lt;br /&gt;
#Now we'll go to the packages directory in the PND and reinstall a couple of packages. Type in &amp;lt;code&amp;gt;cd /mnt/pnd/packages/other/&amp;lt;/code&amp;gt; and press &amp;quot;enter&amp;quot;&lt;br /&gt;
#Type in &amp;lt;code&amp;gt;sudo opkg install pandora-libpnd_1.0-r56.5_armv7a.ipk&amp;lt;/code&amp;gt; and press &amp;quot;enter&amp;quot;&lt;br /&gt;
#Type in &amp;lt;code&amp;gt;sudo opkg install pandora-skel_1.0-r9.5_omap3-pandora.ipk&amp;lt;/code&amp;gt; and press &amp;quot;enter&amp;quot;&lt;br /&gt;
#To unmount the PND, type in &amp;lt;code&amp;gt;sudo umount /mnt/pnd&amp;lt;/code&amp;gt; and press &amp;quot;enter&amp;quot;. If it says it can't unmount it, just restart your Pandora.&lt;br /&gt;
#That's it, your pandora should work again!&lt;br /&gt;
&lt;br /&gt;
==Beta versions==&lt;br /&gt;
*[http://boards.openpandora.org/index.php?/topic/5616-hotfix-6-rc-released/ RC] (2011-10-07)&lt;br /&gt;
*[http://boards.openpandora.org/index.php?/topic/5320-zaxxon-hotfix-6-beta-1-released/ Beta 1] (2011-09-14)&lt;br /&gt;
*[http://boards.openpandora.org/index.php?/topic/4118-hotfix-6-alpha-4-released/ Alpha 4] (2011-06-21)&lt;br /&gt;
*[http://boards.openpandora.org/index.php?/topic/4065-hotfix-6-alpha-3-out/ Alpha 3] (2011-06-17)&lt;br /&gt;
*[http://boards.openpandora.org/index.php?/topic/4056-hotfix-6-alpha-2-is-out/ Alpha 2] (2011-06-16)&lt;br /&gt;
*[http://boards.openpandora.org/index.php?/topic/3955-hotfix-6-alpha-1-released/ Alpha 1] (2011-06-09)&lt;br /&gt;
&lt;br /&gt;
=Hotfix 5=&lt;br /&gt;
*Information and discussion: [http://boards.openpandora.org/index.php?/topic/2080-hotfix-5-released/ OP] [http://www.gp32x.com/board/index.php?/topic/58867-hotfix-5-released/ GP32X] (2011-03-04)&lt;br /&gt;
&lt;br /&gt;
==Beta versions==&lt;br /&gt;
*RC2: [http://boards.openpandora.org/index.php?/topic/1877-hotfix-5-rc2-last-one-before-going-final/ OP] [http://www.gp32x.com/board/index.php?/topic/58779-hotfix-5-rc2-last-one-before-going-final/ GP32X] (2011-02-22)&lt;br /&gt;
*RC1: [http://boards.openpandora.org/index.php?/topic/1572-hotfix-5-rc-1-ready-for-testing/ OP] [http://www.gp32x.com/board/index.php?/topic/58598-hotfix-5-rc-1-ready-for-testing/ GP32X] (2011-02-09)&lt;br /&gt;
*[http://boards.openpandora.org/index.php?/topic/1418-beta-test-upcoming-hf5-firmware-image-beta-4/ Beta 4] (2011-02-01)&lt;br /&gt;
*[http://boards.openpandora.org/index.php?/topic/1316-beta-test-upcoming-hf5-firmware-image-beta-3/ Beta 3] (2011-01-28)&lt;br /&gt;
*[http://boards.openpandora.org/index.php?/topic/1209-beta-test-upcoming-hf5-firmware-image-beta-2/ Beta 2] (2011-01-23)&lt;br /&gt;
*[http://boards.openpandora.org/index.php?/topic/1115-beta-test-upcoming-hf5-firmware-image/ Beta 1] (2011-01-17)&lt;br /&gt;
&lt;br /&gt;
=Hotfix 4=&lt;br /&gt;
*Information and discussion: [http://boards.openpandora.org/index.php?/topic/90-pandora-hotfix-4-final-released-2010-08-31/ OP] [http://www.gp32x.com/board/index.php?/topic/56385-hotfix-4-final-released/ GP32X] (2010-08-31)&lt;br /&gt;
&lt;br /&gt;
==Beta versions==&lt;br /&gt;
*Beta 4: [http://boards.openpandora.org/index.php?/topic/69-hotfix-4-beta-4-released/ OP] [http://www.gp32x.com/board/index.php?/topic/56361-hotfix-4-beta-4-pre-final/ GP32X] (2010-08-29)&lt;br /&gt;
*Beta 3: [http://boards.openpandora.org/index.php?/topic/17-hotfix-4-beta-3-released/ OP] [http://www.gp32x.com/board/index.php?/topic/56266-hotfix-4-beta-3-released/ GP32X] (2010-08-27)&lt;br /&gt;
*[http://www.gp32x.com/board/index.php?/topic/55965-hotfix-4-beta-2/ Beta 2] (2010-08-15)&lt;br /&gt;
*[http://www.gp32x.com/board/index.php?/topic/55788-hotfix-4-very-first-beta/ Beta 1] (2010-08-07)&lt;br /&gt;
&lt;br /&gt;
=Hotfix 3=&lt;br /&gt;
*[http://www.gp32x.com/board/index.php?/topic/54933-hotfix-3-released/ Information and discussion] (2010-07-01)&lt;br /&gt;
&lt;br /&gt;
==Beta versions==&lt;br /&gt;
*[http://www.gp32x.com/board/index.php?/topic/54852-pandora-hotfix-3-beta-2/ Beta 2] (2010-06-29)&lt;br /&gt;
*[http://www.gp32x.com/board/index.php?/topic/54724-pandora-hotfix-3-beta-test/ Beta 1] (2010-06-25)&lt;br /&gt;
&lt;br /&gt;
=Hotfix 2=&lt;br /&gt;
*[http://www.gp32x.com/board/index.php?/topic/54171-hotfix-2-for-zaxxon-released/ Information and discussion] (2010-06-08)&lt;br /&gt;
&lt;br /&gt;
==Beta versions==&lt;br /&gt;
*[http://www.gp32x.com/board/index.php?/topic/54137-pandora-hotfix-pack-2-for-zaxxon/ Beta 1] (2010-06-08)&lt;br /&gt;
&lt;br /&gt;
=Hotfix 1=&lt;br /&gt;
*[http://www.gp32x.com/board/index.php?/topic/53580-hotfix-pack-1-and-community-codec-pack-released/ Information and discussion] (2010-05-24)&lt;br /&gt;
&lt;br /&gt;
=Original firmware=&lt;br /&gt;
*You can download the very first release of the Pandora's [[Zaxxon]] firmware from [http://notaz.gp2x.de/releases/pandora/pandora-firmware-2010-05-01-Zaxxon.zip here] (2010-05-01)&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=User_manual&amp;diff=10291</id>
		<title>User manual</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=User_manual&amp;diff=10291"/>
		<updated>2012-05-05T14:13:04Z</updated>

		<summary type="html">&lt;p&gt;Notaz: rm dated info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{IntroNote | This Wiki is an unofficial community project, and Open Pandora Ltd. is not responsible for its content. Neither is the Wiki an official source of information about your device. &amp;lt;br/&amp;gt;We can always use more help, look [[Getting_involved#The_Wiki | here]] to find out how you can get involved.}}&lt;br /&gt;
&lt;br /&gt;
{{split section|Page to large, bad for categories, linking topics,....}}&lt;br /&gt;
&lt;br /&gt;
[[Image:PandoraFront.jpg|Right|thumb|360px|The Pandora.]]&lt;br /&gt;
So your Pandora just arrived after being in the post for two months. Jolly good! But now that it's actually here, what on earth do you do with it? '''Don't panic!''' Let's take a look at what's included in the box (so you don't miss anything!) and then hop on over to setting it up for that extended Ms. Pacman marathon you've been waiting for!&lt;br /&gt;
&lt;br /&gt;
Also, don't forget to hit up [http://www.gp32x.com/board/index.php?/forum/61-pandora/ GP32X] for questions/info/apps/fun/discussion! Ask on the [http://boards.openpandora.org/ Official Open Pandora forum] if you want a definitive answer.&lt;br /&gt;
&lt;br /&gt;
If you find a problem which is not explained after visiting the forum, be sure to report it in the [http://bugs.openpandora.org/ Bug Tracker]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The Pandora is a combination PC and game console. It has gaming controls ([[d-pad]], two analog [[nubs]], ABXY and shoulder buttons) and a 43-button QWERTY [[keyboard]].&lt;br /&gt;
&lt;br /&gt;
It is fast enough run a full desktop, access the internet and play games.  However, it is much smaller than a netbook -- it will fit in your pocket!  It's a bit bigger than the original Nintendo DS.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
; Outside:&lt;br /&gt;
&lt;br /&gt;
* 140 x 83.4 x 27.5mm, 335g (including battery)&lt;br /&gt;
* &amp;quot;Clamshell&amp;quot; design&lt;br /&gt;
* 43 button QWERTY and numeric [[keypad]]&lt;br /&gt;
&amp;lt;!-- But it doesn't have a separate numeric keypad.. --&amp;gt;&lt;br /&gt;
* Gaming controls:&lt;br /&gt;
** Two analog controllers ([[nubs]])&lt;br /&gt;
** 8-way D-pad&lt;br /&gt;
** A/B/X/Y and [[shoulder buttons]] for gaming.&lt;br /&gt;
* 800x480 resolution LTPS [[LCD]] with resistive touch screen, 4.3&amp;quot; widescreen, 16.7 million colors, 300 cd/m2 brightness, 450:1 contrast ratio&lt;br /&gt;
* Two [[SDHC card]] slots (up to 64GB of storage currently)&lt;br /&gt;
* Headphone output up to 150mW/channel into 16 ohms, 99dB SNR (up to 24 bit/48KHz)&lt;br /&gt;
* Internal microphone plus ability to connect external microphone through headset&lt;br /&gt;
* [[TV output]] (composite and S-Video)&lt;br /&gt;
* [[USB]] 2.0 OTG port (1.5/12/480Mbps) with capability to charge device&lt;br /&gt;
* [[USB]] 2.0 HOST port (480Mbps) capable of providing the full 500mA to attached devices (examples include USB memory, keyboard, mouse, 3G modem, GPS)&lt;br /&gt;
* Two externally accessible [[UARTs]] and four [[PWM]] signals (for [[hardware hacking]], robot control, debugging, etc.)&lt;br /&gt;
&lt;br /&gt;
; Inside:&lt;br /&gt;
&lt;br /&gt;
* 4200mAh battery.&lt;br /&gt;
** 10+ hours of battery life, depending on usage.  For example, turning Wi-Fi or the screen off would give better battery life.&lt;br /&gt;
* 600MHz Texas Instruments [[OMAP3530]] processor.&lt;br /&gt;
** Can be clocked higher or lower by software designed for the device.&lt;br /&gt;
* 256MB DDR-333 [[SDRAM]] (Pre-2012-units), 512MB DDR-333 [[SDRAM]] (units made in Germany, 2012)&lt;br /&gt;
* 512MB [[NAND]] FLASH memory&lt;br /&gt;
* [[IVA2+]] audio and video processor using TI's DaVinci™ technology (430MHz C64x DSP)&lt;br /&gt;
* [[ARM]]® Cortex™-A8 superscalar microprocessor core&lt;br /&gt;
* PowerVR [[SGX530]] 110MHz OpenGL ES 2.0 compliant 3D hardware&lt;br /&gt;
* [[Wifi]] 802.11b/g (up to 18dBm output)&lt;br /&gt;
* [[Bluetooth]] 2.0 + EDR (3Mbps) (Class 2, + 4dBm)&lt;br /&gt;
&lt;br /&gt;
; More:&lt;br /&gt;
&lt;br /&gt;
* Stereo line level inputs and outputs&lt;br /&gt;
&amp;lt;!-- What does this mean? --&amp;gt;&lt;br /&gt;
* Unbrickable design with integrated [[boot loader]] for safe code experimentation.&lt;br /&gt;
* Power and hold [[switch]] useful for &amp;quot;instant on&amp;quot; and key lockout to aid in media player applications on the go.&lt;br /&gt;
* Runs on the Linux [[operating system]] (currently 3.2.x and 2.6.x)&lt;br /&gt;
* See the [[#Applications | Applications]] section of this manual to see what applications your Pandora will come with.&lt;br /&gt;
&lt;br /&gt;
== Box Contents ==&lt;br /&gt;
&lt;br /&gt;
When you first open Pandora's box, a slew of demons and raging emotions may forcibly leave the box. This is normal. After that, you should find the following items:&lt;br /&gt;
&lt;br /&gt;
* The Pandora console&lt;br /&gt;
* [[Stylus]] (located in stylus slot on the side of the Pandora)&lt;br /&gt;
* [[Battery]]&lt;br /&gt;
* Mains power adapter ([[charger]])&lt;br /&gt;
* [[Battery case]]&lt;br /&gt;
&lt;br /&gt;
Available separately:&lt;br /&gt;
&lt;br /&gt;
* [[TV-Out Cable]]&lt;br /&gt;
** As of 3rd November 2010 these are not yet included in the box and will ship separately as available.&lt;br /&gt;
* [[Carrying Case]]&lt;br /&gt;
* Extra Battery&lt;br /&gt;
&lt;br /&gt;
After you take those things out, you may find a sliver of Hope left over. It's best to keep it, as you never know when you could use some Hope.&lt;br /&gt;
&lt;br /&gt;
== Safety Information ==&lt;br /&gt;
&lt;br /&gt;
*Warning: Choking Hazard, do not let children under the age of 3 come close to your Pandora console. The Pandora contains small parts that can be eaten by those children.&lt;br /&gt;
&lt;br /&gt;
*The battery of Pandora must be charged by the charger included with the Pandora (see package contents). [http://www.open-pandora.org/ Open Pandora Ltd.] will not be responsible for damage arising from the use of third party chargers. Please be aware that &amp;quot;cheap&amp;quot; third party chargers often carry fake CE logos. These can damage your Pandora or burst horribly into FLAMES.&lt;br /&gt;
&lt;br /&gt;
*Keep the Pandora in normal temperatures under 140F/60C (Recommended temperatures are in the range between -10C and 40C){{Citation needed}}. The battery is a standard Lithium Polymer battery. Do not keep near fire or water. Do not disassemble, destroy or damage the battery, or it may explode! Do not short circuit external contacts! Dispose of it properly, please. &lt;br /&gt;
&lt;br /&gt;
*Modifications to hardware can damage your Pandora. [http://www.open-pandora.org/ Open Pandora Ltd] cannot be held responsible for any resulting damages that occur from you modifying your Pandora.&lt;br /&gt;
&lt;br /&gt;
*Malicious software can do horrible things to your Pandora. Only download Pandora software from trusted locations such as the [http://repo.openpandora.org/ Repo], the [http://apps.openpandora.org Pandora Apps] website, the [http://dl.openhandhelds.org/cgi-bin/pandora.cgi Pandora File Archive], or the websites of trusted developers.&lt;br /&gt;
&lt;br /&gt;
*The Pandora has a 4.3-inch touch screen. You can touch the screen to trigger an action. That's right, a touch screen - not a stab screen, punch screen, or solid mahogany workbench. Always touch the screen gently – that is more than enough to trigger the action you want.&lt;br /&gt;
&lt;br /&gt;
*The casing of the Pandora has been designed for maximum strength, making it quite hard to break. Please do not consider this a challenge. Do not drop, throw, clamp, launch, tumble dry, or drop anvils on the Pandora. This will void your warranty.&lt;br /&gt;
&lt;br /&gt;
== Warranty Information ==&lt;br /&gt;
&lt;br /&gt;
A one year warranty applies as required by law, and the device will be replaced/repaired if it is faulty. LCDs with numerous/excessive dead pixels will also be replaced.{{Citation needed}}&lt;br /&gt;
&lt;br /&gt;
== First Time Use ==&lt;br /&gt;
&lt;br /&gt;
Now that you've opened the box, let's set this thing up! Place the battery inside the battery compartment on the back of the Pandora, making sure the contacts touch(the little silvery metal bits, it's easy). Snap on the battery cover and you're all set!&lt;br /&gt;
If you find this [[linux]] stuff is a bit new and overwhelming, please try the [[Quickstart | quickstart page]] for a simple walk through the first steps (including downloading the codec pack) and please provide feedback on the forums about how it can be improved and still kept simple.&lt;br /&gt;
&lt;br /&gt;
==== Charging ====&lt;br /&gt;
&lt;br /&gt;
Fully charge your Pandora before disconnecting it from the wall [[charger]]. This can improve the lifetime of your battery. To charge the Pandora, insert the power cable end in the Pandora and the other end into your wall socket, then wait about 4 hours to reach 100%.&lt;br /&gt;
&lt;br /&gt;
The [[battery]] comes pre-charged at 40%, and that level might have decreased during shipping. To be on the safe side, we recommend that you charge the Pandora before you use it. Simply plug in your wall charger into an outlet, or optionally use a mini-[[USB]] cable connected to a computer or wall adapter. For extreme silliness, plug your Pandora into an ''already charged Pandora,'' and charge it from that! But not really.&lt;br /&gt;
&lt;br /&gt;
Note that if your battery shipped really discharged, you may have to way a few minutes before the Pandora power on. &lt;br /&gt;
&lt;br /&gt;
To &amp;quot;fast charge&amp;quot; just put the system into &amp;quot;low-power&amp;quot; mode. You cannot charge the system while ''off''. This is currently a feature and may change in future versions of the firmware. &lt;br /&gt;
&lt;br /&gt;
You can find more useful information about charging on the [[power modes]] page.&lt;br /&gt;
&lt;br /&gt;
{{warning&lt;br /&gt;
|IF YOU POWERED THE SYSTEM WITHOUT A BATTERY, SHUT IT OFF BEFORE STICKING THE BATTERY BACK IN.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Finally, don't just leave your Pandora plugged in forever.  Unplug it once every couple days while using it to allow the battery to discharge from full (to around 90% or less?).  If you're not going to use your Pandora for a while, discharge the [[battery]] to around 40%, remove the battery, wrap it in a plastic bag (a Ziplock-type bag?), and stick it in the fridge.&lt;br /&gt;
&lt;br /&gt;
Leaving your Pandora plugged in indefinitely, even while in low-power mode, may damage the battery if you're running a firmware older than Zaxxon Hotfix 6!  See the [http://boards.openpandora.org/index.php?/topic/640-warning-dont-leave-your-pandora-plugged-in-for-too-long/|the Open Pandora Boards] for more details. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== First Boot ====&lt;br /&gt;
Once your Pandora is ready, turn it on. After it has booted, a series of settings dialogs will pop up in the shape of a &amp;quot;Boot Wizard&amp;quot; allowing you to alter your Pandora's settings to your liking.&lt;br /&gt;
&lt;br /&gt;
There are a total of 3 parts to the [[First Boot Wizard]] guide:&lt;br /&gt;
===== User setup =====&lt;br /&gt;
After calibrating your screen, you will have to enter your full name. This is what you will see in any user selection dialogs or when the system needs to address you, so enter whatever you are most comfortable with. Then follows your username. It is recommended to choose an all-lowercase, one-word username here, since you will have to enter this name every time you log in. Once you've entered your username, a password input dialog appears. You will have to enter the password you want to use twice here. If you don't want to have a password for your device, simply leave both fields empty. If, however, you decide to enter a password, something hard to guess and between 8 and 16 characters long is preferred.&lt;br /&gt;
&lt;br /&gt;
===== Network and security settings =====&lt;br /&gt;
You will now have to enter a name for your Pandora. This will be the Pandora's host name, so you have two options in this situation:&lt;br /&gt;
&lt;br /&gt;
# If you don't have a domain you want to connect to, simply enter any name here. It should not contain any spaces.&lt;br /&gt;
# If you ''do'' have a domain you want to connect to, enter a name in the form of &amp;quot;pandoraname.domainname.tld&amp;quot;. Note that you may never have a use for this.&lt;br /&gt;
&lt;br /&gt;
Then, you'll have to choose whether you want to automatically log in on your Pandora when it boots, or if you should be given the opportunity to log in as a different user, or enter your password. It is recommended to disable auto login if you want to protect your user data, but if you're often in a hurry, then you can enable auto login here.&lt;br /&gt;
&lt;br /&gt;
The final thing you will have to choose, is whether you want to use the full desktop [[Xfce]] environment or the gaming-oriented [[MiniMenu]] environment as your default environment in the Pandora. It is also possible to select the environment each time on startup (Switch GUI).&lt;br /&gt;
It is recommended to choose &amp;quot;Switch GUI&amp;quot; here. This option can be changed later at any point.&lt;br /&gt;
&lt;br /&gt;
===== Startup / Overclocking / LCD Settings =====&lt;br /&gt;
Since firmware release of SuperZaxxon, you can optionally change the startup / overclocking or LCD Settings.&lt;br /&gt;
You can skip these settings for now, you can always change these later as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Calibrating the Analog Nubs [http://pandorawiki.org/Nubs]====&lt;br /&gt;
&lt;br /&gt;
The nubs automatically [[calibrate]] with use, and do so every time the unit is freshly powered up. Calibration information is stored inside the nub RAM, so when you power down (full power off, not just low power mode) the calibration information is lost. Calibrating the nubs is as simple as just using them -- do a few left right up down moves or swoosh around, and the nub will know its boundaries and be good thereafter.&lt;br /&gt;
&lt;br /&gt;
So no special effort is required to calibrate or use the nubs, but the first few motions you use of them may be erratic as they self-calibrate.&lt;br /&gt;
&lt;br /&gt;
==== Calibrating the Touchscreen ====&lt;br /&gt;
The [[touchscreen]] in your new Pandora device isn't psychic! You have to tell it what to do, and in order to do that effectively, you need to calibrate it. Simply navigate to settings→screen→calibration wizard{{Verify credibility}} and follow the onscreen instructions. You may have to recalibrate the screen from time to time as well.&lt;br /&gt;
&lt;br /&gt;
==== Mouse (stylus/pointer) settings ====&lt;br /&gt;
When done with the calibration and you are back in the Pandora [[Xfce]] desktop environment you might also want to change some other touch screen settings to make navigation with the stylus work according to your preferences. Two recommended settings to experiment with for easier navigation are:&lt;br /&gt;
&lt;br /&gt;
#  The double-click Time setting&lt;br /&gt;
#  The double-click  Distance (valid touch-screen double-click area)&lt;br /&gt;
&lt;br /&gt;
In the first setting, i.e. Time, you will be setting the interval between double-clicks where such clicks will be accepted as valid.&lt;br /&gt;
Ex. if you set the time to 250ms, the second click (or screen-tap in our case) must occur within 250ms of the first to be valid.&lt;br /&gt;
&lt;br /&gt;
In the second setting, Distance, you will be setting the radius of screen area where the second click (tap) must fall into to be considered as a valid second tap. This means that if, for example, you set the distance to 5, your second tap must fall within a circle radius of 5 pixels from the point where the first tap occurred.&lt;br /&gt;
&lt;br /&gt;
These two settings can be found under:  Desktop ---&amp;gt; Xfce menu ---&amp;gt; Settings ---&amp;gt; Desktop ---&amp;gt; Mouse ---&amp;gt; Behaviour tab.&lt;br /&gt;
&lt;br /&gt;
== Basic Use ==&lt;br /&gt;
See the [[GUI]] page for more details on the user interfaces which can be used with the Pandora.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===minimenu / mmenu===&lt;br /&gt;
&lt;br /&gt;
[[minimenu]] is designed as a fast and easy to use launcher, without a lot of fancy frills. A grid of icons to launch, and use the d-pad or touchscreen to fire one off. It is fairly configurable and skinnable and is fully featured, and very fast. If you recall the interface on the gp32, gp2x, wiz, and gmenu2x you will be right at home and then some!&lt;br /&gt;
&lt;br /&gt;
=====The main grid=====&lt;br /&gt;
&lt;br /&gt;
The main grid with the default [[skin]] has most of the screen realestate showing a grid of available 'auto discovered' applications, with a detail panel on the right. A list of tabs is across the top of the screen, with some short help message on the bottom.&lt;br /&gt;
&lt;br /&gt;
Pressing Start or B will invoke the [[pnd]]-application. Pressing Select will switch to a basic menu, providing shutdown or some advanced options.&lt;br /&gt;
&lt;br /&gt;
Pressing &amp;quot;Y&amp;quot; (think &amp;quot;Why?&amp;quot;) will bring up pnd-application documentation, if that [[pnd]]-file has defined any.&lt;br /&gt;
&lt;br /&gt;
The left and right shoulder triggers will switch categories of applications; by default, minimenu includes an All category and defaults to showing it.&lt;br /&gt;
&lt;br /&gt;
The applications are auto-discovered in the same means as the xfce desktop and pmenu and other pnd-supporting systems, however you may add additional minimenu-specific searchpaths into the configuration should you wish to. It is likely a basic file browser will also be added, letting you launch applications manually placed on your SD cards.&lt;br /&gt;
&lt;br /&gt;
The standard overrides are supported -- [[.ovr]] files for icon title, clockspeed setting and categories, as well as a [[.png]] for icon override.&lt;br /&gt;
&lt;br /&gt;
=====Skinning=====&lt;br /&gt;
&lt;br /&gt;
Skinning guide in gp32x forum: http://www.gp32x.com/board/index.php?/topic/53990-skinning-minimenu/&lt;br /&gt;
&lt;br /&gt;
A mmskin.conf from February 2011: http://git.openpandora.org/cgi-bin/gitweb.cgi?p=pandora-libraries.git;a=blob;f=minimenu/skin/default/mmskin.conf;h=695888b3ae310d7ea04b4e682baed0c0c6fc4349;hb=98c1d081629ac9cbb3056b39097a3db968ce4055&lt;br /&gt;
&lt;br /&gt;
===Desktop style environment (Xfce)===&lt;br /&gt;
&lt;br /&gt;
=====On the Desktop=====&lt;br /&gt;
&lt;br /&gt;
The desktop will contain icons for numerous locations (such as each mounted SD card), as well as any auto-discovered pnd-applications located on SD cards or internal [[NAND]].&lt;br /&gt;
&lt;br /&gt;
=====In the menu=====&lt;br /&gt;
On the bottom left you have your applications menu, similar to the Windows start menu. Clicking it brings up a list of all installed applications and pnd-applications in the appropriate location on your [[SD cards]].&lt;br /&gt;
&lt;br /&gt;
=====Miscellaneous=====&lt;br /&gt;
To the right may be some icons, these serve as shortcuts to commonly used applications. Next to that you have your taskbar which, as you might have guessed, lists all running applications in your current workspace. To the right of the taskbar you have your workspaces, think of these as multiple desktops. By default you have two to switch between. Applications running in one workspace will not be visible in the other, so you can effectively hide your Ms. Pacman game from your boss at work, because there's no way you're not going to go for the gold, even at work! Finally there are a few more icons that deal with TV-Out, network connectivity, etc. and some running applications may place an icon there as well. And to the right of THOSE, you have your time. Because time flies when you're using your Pandora! Badum tsh. And to the right of that, you have a little icon which, when clicked, displays all running applications.&lt;br /&gt;
&lt;br /&gt;
Finally, I'd just like to reiterate this--EVERYTHING is customizable! We'll get to that section later on.&lt;br /&gt;
&lt;br /&gt;
If a window is too tall to fit on the screen you can move it by holding down the left [[shoulder button]] and dragging the window with the [[stylus]].&lt;br /&gt;
&lt;br /&gt;
===Pandora Button===&lt;br /&gt;
&lt;br /&gt;
When in the desktop style environment ([[Xfce]]), the Pandora button will bring up the applications menu, letting you quickly view the available applications. If held, it allows you to [[User_manual#Killing Applications | kill]] an unresponsive application. If that doesn't work, you can do a hard-reset of the Pandora by pressing and holding the Pandora button, then flicking the power switch to the right.&lt;br /&gt;
&lt;br /&gt;
===Power modes===&lt;br /&gt;
&lt;br /&gt;
The [[Power modes]] page provides full details of power modes, charging and battery care and lifetime.&lt;br /&gt;
&lt;br /&gt;
Without switching the device entirely off, it may be placed into low power mode or regular power mode; simply sliding the power switch to the right will toggle modes.&lt;br /&gt;
&lt;br /&gt;
Consider low power mode to be akin to turning off a PDA or cellphone -- the screen is off, the CPU is clocked down and so on, but the device is still silently on, allowing for alarms to go off or it to be turned on again instantly. Regular power mode is for normal usage.&lt;br /&gt;
&lt;br /&gt;
Low power mode is probably going to be used as the normal &amp;quot;off&amp;quot; for most people, with true off (device powered down entirely, unable to respond to alarms or wake up quickly) available to conserve battery power. Turning the Pandora off completely is the best option if you don't plan on using it for few hours or longer. &lt;br /&gt;
&lt;br /&gt;
Closing the lid will turn off the [[display]] but otherwise leave the device operating - handy for audio playing; turning off the display reduces power consumption.&lt;br /&gt;
&lt;br /&gt;
Shutdown will only occur if you are unplugged from the wall. The device can't be charged while off, to &amp;quot;fast charge&amp;quot; just switch to low power mode. See [[Power modes | power modes]] for more info.&lt;br /&gt;
&lt;br /&gt;
The actual behavior of buttons and events can be customized.&lt;br /&gt;
&lt;br /&gt;
=== USB Peripherals ===&lt;br /&gt;
You can connect USB2 High Speed peripherals directly, using the large USB connector, or a USB-OTG adaptor lead. Lower-speed USB devices will only work through a hub, the Pandora does not have the support circuitry inside to drive the interface in the correct mode.&lt;br /&gt;
See the [[USB_compatibility_list|the USB compatibility list]] for peripherals which have been tested so far.&lt;br /&gt;
&lt;br /&gt;
=== Killing Applications ===&lt;br /&gt;
Killing (or forcibly closing) an unresponsive application is as simple as holding down the [[Pandora button]] (just under start and select) for a few seconds. A dialog will appear which lists the open applications and gives you the option to kill them.&lt;br /&gt;
&lt;br /&gt;
=== Forcing a Restart ===&lt;br /&gt;
Occasionally something will happen causing your Pandora to become unresponsive (to the point that even killing a program isn't possible). When this happens it is necessary to force your Pandora to restart. The easiest way to do this is by holding the Pandora button and moving the power switch to the right.&lt;br /&gt;
&lt;br /&gt;
== Configuration and Customization ==&lt;br /&gt;
This is just an overview of the [[customization]] and configuration you can do. Individual sections may link to their own pages.&lt;br /&gt;
&lt;br /&gt;
=== Setting Up WiFi ===&lt;br /&gt;
If [[wifi]] is enabled, and you are in range of an access point, a dialogue should appear offering to connect to it. See the [[Wifi]] page for more detail on using wifi.&lt;br /&gt;
&lt;br /&gt;
=== Setting Up Bluetooth ===&lt;br /&gt;
Connecting to [[Bluetooth]] devices is easy using the tool located in the Xfce taskbar.&lt;br /&gt;
&lt;br /&gt;
For help with setting up a [[Bluetooth]] GPS, see [[GPS#Bluetooth_GPS | here]].&lt;br /&gt;
&lt;br /&gt;
=== Adjusting Brightness/Contrast ===&lt;br /&gt;
Brightness can be raised by pressing Fn+I and lowered with Fn+U. A tool is included with the Pandora called &amp;quot;LCD-Settings&amp;quot; (under the &amp;quot;Settings&amp;quot; menu) which can be used to adjust the brightness and the gamma.&lt;br /&gt;
&lt;br /&gt;
=== Changing Your Theme ===&lt;br /&gt;
Under &amp;quot;Settings&amp;quot; in the menu, you will find &amp;quot;Appearance&amp;quot; which will let you adjust the style, icon set, fonts, and a few other appearance related settings. Also, under &amp;quot;Window Manager&amp;quot; you can adjust the style of each window's title bar.&lt;br /&gt;
&lt;br /&gt;
=== Minimenu Configuration and Tricks ===&lt;br /&gt;
&lt;br /&gt;
[[minimenu]] has a fairly comprehensive configuration file for its minimalistic design; most options may be enabled or disabled or fiddled with, and the skin can reasonably be altered.&lt;br /&gt;
&lt;br /&gt;
The All category can be removed if undesired.&lt;br /&gt;
&lt;br /&gt;
Expert conf hackers can specify what categories they'd like and in what order, and have multiple app categories dumped into one tab, and other tricks.&lt;br /&gt;
&lt;br /&gt;
pnd-application icons may be all loaded during the menu setup, or deferred until later and loaded in the background.&lt;br /&gt;
&lt;br /&gt;
Preview pics may be loaded up front (not advised, as it can be slow), or deferred until later. (When deferred, they may load when you rest the selection, or load in background.)&lt;br /&gt;
&lt;br /&gt;
You may choose to have auto-discovered applications registered into any of their 6 categories (Main, Sub1, Sub2, Alt, AltSub1, AltSub2).&lt;br /&gt;
&lt;br /&gt;
Etc and so on.&lt;br /&gt;
&lt;br /&gt;
Additional keys are supported: Q to quit the menu (not really useful for most people), and Space to invoke the application.&lt;br /&gt;
&lt;br /&gt;
[[Minimenu Configuration Documentation]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
&lt;br /&gt;
Many applications will come preinstalled into the internal [[NAND]]; these will be regular Linux applications (not packaged into [[pnd]] files, since they do not need to be redistributed to anyone.)&lt;br /&gt;
&lt;br /&gt;
Additional applications may be found as [[Introduction to PNDs | pnd-files]] (a packaged up single file representing an entire application) or as regular Linux files (an application likely being made up of many files and possibly needing installation.)&lt;br /&gt;
&lt;br /&gt;
==== What Is Included? ====&lt;br /&gt;
* [[Ångström]] Linux: Lightweight beautiful Linux-based operating system for the Pandora.&lt;br /&gt;
* [[Xfce]]: A full featured window manager for Linux.&lt;br /&gt;
* [[Midori]]: A full featured web browser, designed to be lighter and faster than a full desktop style browser.&lt;br /&gt;
* Lightweight office utilities including Abiword, Gnumeric, and ClawsMail (warning: do not use ClawsMail, it will fill up your [[NAND]]. Solutions are [http://www.gp32x.com/board/index.php?/topic/56810-html-viewer-for-claws-mail/page__view__findpost__p__919458 being worked on]). '''As of [http://www.gp32x.com/board/index.php?/topic/58867-hotfix-5-released/ Hotfix 5]''', GCalcTool is also included, while Abiword, Gnumeric, Clawsmail and Pidgin have been removed (you can download them from [[software projects|here]] instead).&lt;br /&gt;
{{Volume needed}}&lt;br /&gt;
&lt;br /&gt;
==== Where Can I Get More Apps? ====&lt;br /&gt;
There are many ways to get more applications onto your Pandora. &lt;br /&gt;
&lt;br /&gt;
*On this wiki, we maintain up-to-date lists of [[games]], [[Emulator list|emulators]], and [[Software projects|other software]], with download links. These lists are more comprehensive than the two official sites below, because not every program is submitted to both of them.&lt;br /&gt;
&lt;br /&gt;
*On [http://repo.openpandora.org repo.openpandora.org] there is a nice [[PND]]-Repository, using [[PNDstore]] you can also automatically update all your [[PND]]s or install new ones directly on the Pandora.&lt;br /&gt;
&lt;br /&gt;
*The easiest way is to browse the [http://apps.open-pandora.org Open App Store], where you can download a selection of free or commercial applications. To download, navigate to an app, pay for it if you must, and hit the 'download' button. Select where you want to save it, and you're done!&lt;br /&gt;
&lt;br /&gt;
*There is the good ol' [http://dl.openhandhelds.org/cgi-bin/pandora.cgi Pandora File Archive].&lt;br /&gt;
&lt;br /&gt;
*To help with the massive range of applications, a member of the community has started to produce [[PandaPacks]] for some pre-packaged games, emulators and distributable ROMs in handy SD card filling torrents.&lt;br /&gt;
&lt;br /&gt;
*The Pandora includes the package manager [[opkg]], which is a fork of [http://en.wikipedia.org/wiki/Ipkg ipkg]. This will install to your Pandoras [[NAND]] by default and can cause severe problems because the version of Angstrom which is used on the Pandora is too old - only use it if you know exactly what you're doing! Type &amp;quot;df -h&amp;quot; in the terminal to see how much space you have left - you shouldn't fill it completely, you might not even be able to login when it is completely full (I'm quite sure you can't, although I might be wrong). You can use the [http://www.pandorabits.org/index.php?page=opkg-installer OPKG Installer] to make things easier.&lt;br /&gt;
&lt;br /&gt;
*You could also download .ipk files directly from the [http://www.angstrom-distribution.org/repo Angstrom ARM Repository], but these are actually the same as if you would install them using [[opkg]] (see above), have the same problems as if using [[opkg]] and the additional annoyance that dependencies aren't resolved automatically. There are different .ipk files for every program, the right ones are the armv7a ones from 2008.&lt;br /&gt;
&lt;br /&gt;
*Also, people may upload their apps to weird crevices in the net, so be on the lookout! (or use a search engine)&lt;br /&gt;
&lt;br /&gt;
{{warning|Your Pandora's internal memory (NAND) will be at close to capacity when you receive it. All new programs '''should be installed to SD card'''. Downloads from the Angstrom Repo, or use of the [[opkg]] package manager, should only be done by advanced users or when instructed by Open Pandora Ltd (for example, firmware updates will probably use a pandora specific repository in the future).''}}&lt;br /&gt;
&lt;br /&gt;
==== Installing a PND file (an application) ====&lt;br /&gt;
[[Image:PandoraSD.png|thumb|alt=SD card folder structure|This is what the folder structure on your SD card should look like. The drive letter and card name will vary; they're not important.]]&lt;br /&gt;
Installation of a PND file is so easy, you can hardly even call it installing. All you need to do is copy the PND file into the appropriate folder on your SD card. The first thing you'll need to do is set up some folders that the Pandora will recognise. It's recommended that you start with a blank, freshly formatted (or freshly purchased) SD card. For the purposes of this guide we'll refer to your [[SD card]] as &amp;lt;SD&amp;gt; (Windows might call it something like G:\Removable Disk or Linux /media/something). Create a new folder on the SD card called 'pandora':&lt;br /&gt;
*&amp;lt;SD&amp;gt;/pandora&lt;br /&gt;
Then open the 'pandora' folder, and create four more inside it: apps, appdata (this one isn't really needed, [[PND]]s can save there settings and stuff there, it will automatically be created when a [[PND]] wants to save something), desktop, and menu:&lt;br /&gt;
*&amp;lt;SD&amp;gt;/pandora/apps&lt;br /&gt;
*&amp;lt;SD&amp;gt;/pandora/appdata/&lt;br /&gt;
*&amp;lt;SD&amp;gt;/pandora/desktop/&lt;br /&gt;
*&amp;lt;SD&amp;gt;/pandora/menu/&lt;br /&gt;
Now you're ready to install a PND file. Just copy and paste (or drag and drop; or save) the file into your folder of choice:&lt;br /&gt;
* Putting a PND in the /desktop folder will make it appear on the [[XFCE]] desktop&lt;br /&gt;
* Putting a PND in the /menu folder will make it appear in the [[XFCE]] system menu&lt;br /&gt;
* Putting a PND in the /apps folder will make it appear in both locations&lt;br /&gt;
* If you're using [[Minimenu]] instead of XFCE, it doesn't matter which of these three folders you use. You can also create a &amp;lt;SD&amp;gt;/pandora/mmenu/ folder, and anything saved there will ''only'' show up in Minimenu.&lt;br /&gt;
Occasionally you'll come across an application which needs additional data (for example, the data files for Quake, or ROMs for an emulator). These files goes into the appdata folder. A [[PND]] program will automatically create its own subfolder within /appdata the first time it is run; then you can add files to it. More information on this is available on the [[Introduction_to_PNDs#Where_does_my_data_go.3F_How_do_I_make_files_visible_to_the_applications.3F | introduction to PNDs]] page.&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
For more detail about firmware, see the [[Introduction to firmware]] page.&lt;br /&gt;
&lt;br /&gt;
==== Updating The Firmware ====&lt;br /&gt;
&lt;br /&gt;
Updates to the firmware are currently available as full reflash only. Check the OpenPandora official [http://www.openpandora.org/index.php?option=com_content&amp;amp;view=article&amp;amp;id=199&amp;amp;Itemid=40&amp;amp;lang=en support] page for the latest status.&lt;br /&gt;
&lt;br /&gt;
==== Reinstalling the Firmware ====&lt;br /&gt;
&lt;br /&gt;
There are several reasons why you might wish to take this seemingly drastic step. It is possible that the system software gets corrupted somehow (for example, a power failure whilst you are completing the 'first boot' process). Alternatively, you might wish to install a copy of the firmware on an SD card if you are experimenting with different system configurations. Regardless, the Pandora is very robust, it is always possible to download some files to the SD card, and use these to return the internal [[NAND]] to the 'factory' state without too much effort. See the [[Introduction to firmware]] page for information on how to do this.&lt;br /&gt;
&lt;br /&gt;
== Pandora FAQ ==&lt;br /&gt;
Silly goose, go to the [[FAQ]] page for more detailed information.&lt;br /&gt;
&lt;br /&gt;
==Futher reading==&lt;br /&gt;
* [[Basic Linux Guide]] - For those who don't know very much about Linux and want to learn more.&lt;br /&gt;
* [[Minimenu Configuration Documentation]] - If you want to customize or configure Minimenu.&lt;br /&gt;
* [[Tutorials]]&lt;br /&gt;
* [[Emulator list]] - See what systems you can emulate.&lt;br /&gt;
* [[Games]] - Take a look at the games that are available.&lt;br /&gt;
* [[Software projects]] - A list of all non-emulator, non-game software for Pandora.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Configuring_ext_signals&amp;diff=10290</id>
		<title>Configuring ext signals</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Configuring_ext_signals&amp;diff=10290"/>
		<updated>2012-05-05T13:41:15Z</updated>

		<summary type="html">&lt;p&gt;Notaz: /* Disabling attached terminal */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Pin functions (mux)=&lt;br /&gt;
Currently this needs recompiling u-boot, but some easier control is planned.&lt;br /&gt;
&lt;br /&gt;
By default UART2 pins are set up as GPIOs, and UART3 as an UART.&lt;br /&gt;
&lt;br /&gt;
=Power supply=&lt;br /&gt;
Currently requires patching bootloaders (xload and u-boot).&lt;br /&gt;
&lt;br /&gt;
This is connected to VAUX3 supply on PMIC, with these programmable voltages (200mA max):&lt;br /&gt;
1.5V, 1.8V, 2.5V, 2.8V and 3.0V, with 2.8V as default.&lt;br /&gt;
&lt;br /&gt;
'''warning''': at the time of this writing, both bootloaders (xload and u-boot) set this to 2.8V, so don't rely on this providing other voltages during reboot until you patch both bootloaders.&lt;br /&gt;
&lt;br /&gt;
=GPIOs=&lt;br /&gt;
Can be controlled using GPIO sysfs class device, as described in beagleboard tutorials [http://bbfordummies.blogspot.com/2009/07/1.html here].&lt;br /&gt;
&lt;br /&gt;
=UART3=&lt;br /&gt;
By default, kernel messages are directed there and a terminal with a shell is attached. The port runs at 115200 8N1 baud rate.&lt;br /&gt;
==Disabling kernel messages==&lt;br /&gt;
To disable kernel mesages, you need to edit kernel boot arguments. Probably easiest way to do it is to create autoboot.txt and place on root directory of a card in slot1 with this content:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
setenv bootargs ubi.mtd=4 ubi.mtd=3 root=ubi0:rootfs rootfstype=ubifs rw rootflags=bulk_read&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Alternatives are using u-boot environment (configure through USB or UART3 serial before system boots up) or patching and reflashing u-boot itself.&lt;br /&gt;
==Disabling attached terminal==&lt;br /&gt;
For this you need to edit /etc/inittab on pandora rootfs and comment out these lines:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#S0:2345:once:/sbin/getty 115200 ttyS0&lt;br /&gt;
#O2:2345:once:/sbin/getty 115200 ttyO2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Jp:Running_Linux_from_an_SD_card&amp;diff=10289</id>
		<title>Jp:Running Linux from an SD card</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Jp:Running_Linux_from_an_SD_card&amp;diff=10289"/>
		<updated>2012-05-05T13:39:34Z</updated>

		<summary type="html">&lt;p&gt;Notaz: remove ttyS0, breaks new kernel&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==はじめに==&lt;br /&gt;
&lt;br /&gt;
[[Jp:Introduction to firmware|ファームウェアの紹介]]ページで説明されているように、Pandoraは[[SD card]] [[Image:Flag_gb.png]] からのシステム起動も可能です。このチュートリアルでは、ブートできるAngstromのオペレーティングシステムのコピーを使用して、SDカードを作成するために必要な手順を説明します。&lt;br /&gt;
&lt;br /&gt;
{{hint&lt;br /&gt;
|注記: このチュートリアルでは、Linuxを使用していることを想定し、パンドラ上で実行する必要がある例を示します。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==ファームウェアのコピーを取得する==&lt;br /&gt;
&lt;br /&gt;
[http://www.gp32x.com/board/index.php?/topic/54290-up-to-date-firmware-tarball このトピック] [[Image:Flag_gb.png]] で説明された、Pandoraの[[Jp:NAND|NAMD]]からデータを取得するために使用できる方法があります。それは、単にtarファイルを抽出するだけで簡単です。&lt;br /&gt;
&lt;br /&gt;
*[http://openpandora.org/firmware/ ここ] (pandora-rootfs.tar.bz2 が何をするのか) [[Image:Flag_gb.png]] を見て下さい、そして公式のOpenPandoraのサイトから最新バージョンを入手して下さい。このファームウェアのバージョンが、不安定でテストされていないかもしれないことに注意してください！&lt;br /&gt;
&lt;br /&gt;
*先のリンクに障害がある場合は、[http://pandora.digital52.com/downloads/Angstrom-pandora-xfce-image-glibc-ipk-2010.4-test-20100614-omap3-pandora.rootfs.tar.bz2 この古いリファレンスのイメージ] [[Image:Flag_gb.png]] をダウンロードして下さい。&lt;br /&gt;
&lt;br /&gt;
*上記の二つが動作しない場合は、[http://www.codejedi.com/pandora/libpnd/pandora-xfce-image-omap3-pandora-20101705-image-for-checking-fixes.tar.bz2 さらに古いイメージ] [[Image:Flag_gb.png]] をダウンロード出来ます。&lt;br /&gt;
&lt;br /&gt;
*また、SDカードのパーティションに、NAND上で動作するファームウェアをコピーすることができます。これは、以下の独自のセクションに示す通りです。&lt;br /&gt;
&lt;br /&gt;
==SDカードのパーティション==&lt;br /&gt;
&lt;br /&gt;
このステップはオプションです。&lt;br /&gt;
&lt;br /&gt;
SDカードをいくつかのパーティションに分割したい場合(見て、[[Jp:Running Linux from an SD card#ブート用マルチパーティションSDカードの作成方法|ブート用マルチパーティションSDカードの作成方法]])は、パーティションテーブルを作成するために、Pandoraの''cfdisk''コマンドラインツールを使用することができます。Pandoraのファームウェア(Zaxxon HF5のような)は、FATパーティションをフォーマットするコマンドを持っていないことに注意してください、FAT/ext2/swapを使用する場合、後で別のシステム(Windows環境下で、ディスク管理ツールを使用)で、最初のパーティションをフォーマットする必要があります。&lt;br /&gt;
&lt;br /&gt;
カードが左側のスロットにある場合:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo cfdisk -z /dev/mmcblk0&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cfdisk -z は、クリーンなパーティションテーブルから始めます - 現在設定されているかを確認したい場合は、''cfdisk /dev/mmcblk0''を使用してください。&lt;br /&gt;
&lt;br /&gt;
プライマリパーティションのみを使用してください(よって4分割までに限定です)。&lt;br /&gt;
&lt;br /&gt;
==ext2にSDカードをフォーマット==&lt;br /&gt;
&lt;br /&gt;
あなたは単一のext2パーティションを持つように、SDカードをフォーマットする必要があります; [[ext3]] も同様&amp;lt;sup&amp;gt;[http://www.gp32x.com/board/index.php?/topic/54928-64gb-sdxc-cards/]&amp;lt;/sup&amp;gt; で、より信頼性が高い&amp;lt;sup&amp;gt;[http://www.gp32x.com/board/index.php?/topic/54928-64gb-sdxc-cards/page__view__findpost__p__901072]&amp;lt;/sup&amp;gt;です。あなたが好むなら、2番目にswapパーティションを持つことができます。GUIツールと同様に使用できるコマンドラインツールがあります。&lt;br /&gt;
&lt;br /&gt;
===コマンドラインを使用===&lt;br /&gt;
正しいデバイスにアクセスしているのを確認してから、これらのコマンドラインツールを使用するように注意してください。あなたに尋ねることはありませんが、デバイス上のデータが破壊されます。このコマンドは、空のext2フォーマットされたファイルシステムを持つ、既存のパーティションに置き換えます(ほとんどのSDカードは、出荷時に単一のFATパーティションで設定されています)。''/dev/mmcblk0p1'' をあなたのSDカード(左のスロットで、firstパーティション)と仮定し、''LABELNAME'' をパーティション名とします:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkfs.ext2 -L LABELNAME /dev/mmcblk0p1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
もしSDカードをフォーマットして問題が発生した場合、最初にそれをunmountしてみてください:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo umount /media/[LABELNAME of SD card]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GUIツールを使用===&lt;br /&gt;
GUIツールを使用すると、誰かが使用する方法を指示する必要がないほど簡単です。今のところこれは読者のために、宿題として残しておきます（誰かが使用方法を書き込むまで）。&lt;br /&gt;
&lt;br /&gt;
==コピーとブート==&lt;br /&gt;
&lt;br /&gt;
===SDカードにファイルをコピー===&lt;br /&gt;
ダウンロードした(もしくは作成した)tar.bz2ファイルを持つディレクトリに移動(cd 実行)して次を実行:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo tar -xvjf &amp;lt;tarfile&amp;gt;.tar.bz2 -C &amp;lt;SD card&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pandora上でこれを行う場合、&amp;lt;SD card&amp;gt; は /media/mmcblk0p1 のようになります(Pandoraの第一(左側)SDカードスロットの場合)。ラベルがない場合、Ubuntu上では /media/disk のようになります。また、このためのGUIツールを使用して試すことができますが、私は強運を持っていませんでした。&lt;br /&gt;
&lt;br /&gt;
===もしくはNANDからSDカードにファームウェアをコピー===&lt;br /&gt;
&lt;br /&gt;
以下は、パスワードを聞いてきます。すべてにsudoを使うのは無駄だろうと思ったので、すべての操作はroot権限が必要です。&lt;br /&gt;
root下にmountされた他のファイルシステム（カーネルの仮想ファイルシステム /proc および /sys 、そしてSDカードのような）と共に、root fsを別の場所(&amp;quot;/mp&amp;quot;)にmountします。これにより、SDのファイルシステムにNANDの内容のライブコピーを取ることができます。  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo su&lt;br /&gt;
mkdir /mp&lt;br /&gt;
mount --bind / /mp&lt;br /&gt;
cp -va /mp/* /media/&amp;lt;SD card&amp;gt;&lt;br /&gt;
umount /mp&lt;br /&gt;
rmdir /mp&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===boot.txtの設定===&lt;br /&gt;
[[boot.txt]](または、自動的にbootしたい場合はautoboot.txt)と呼ばれる新しいファイルを作成し、コピーして以下のテキストを貼り付けます。SDカードのrootのrootにそのファイルをコピーします。&lt;br /&gt;
&lt;br /&gt;
{{warning&lt;br /&gt;
|あなたがWindows上でファイルを編集する場合、[http://notepad-plus-plus.org/ Notepad++] [[Image:Flag_gb.png]] のような高度なテキストエディタを使用し、UNIX形式に変換してください(NP++では: Edit -&amp;gt; EOL Conversion -&amp;gt; UNIX format)。DOS形式の改行がある場合は、uImageのファイル名に隠された文字を付加するので、ext2load は &amp;quot;file not found&amp;quot; のようなエラーで失敗するでしょう。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
boot.txt ([http://openpandora.org/firmware/README.txt 公式ファームウェアサイトより] [[Image:Flag_gb.png]] )&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
setenv bootargs root=/dev/mmcblk0p1 rw rootwait vram=6272K omapfb.vram=0:3000K mmc_core.removable=0&lt;br /&gt;
ext2load mmc 0 0x80300000 /boot/uImage&lt;br /&gt;
bootm 0x80300000&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
この boot.txt では、カードがext2でフォーマットされ、SDカードからカーネルをロードすると仮定していることも注意してください。ext2フォーマットされたSDカードから起動したくない場合は、&lt;br /&gt;
次を使って下さい&lt;br /&gt;
boot.txt&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
setenv bootargs root=/dev/mmcblk0p1 rw rootwait vram=6272K omapfb.vram=0:3000K mmc_core.removable=0&lt;br /&gt;
ubi part boot &amp;amp;&amp;amp; ubifsmount boot &amp;amp;&amp;amp; ubifsload ${loadaddr} uImage &amp;amp;&amp;amp; bootm ${loadaddr} &amp;amp;&amp;amp; boot&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
この場合、ブートローダーが内部NANDメモリー上のカーネルを探して教えてくれます（テストが行われないことに注意）。&lt;br /&gt;
&lt;br /&gt;
両方の boot.txt は、左側のSDカードスロット、最初のパーティションからブートしていると仮定しています。右のスロットから起動する場合には、&amp;quot;mmcblk0p1&amp;quot; から &amp;quot;mmcblk1p1&amp;quot; に変更しましょう。&lt;br /&gt;
&lt;br /&gt;
===ブート用マルチパーティションSDカードの作成方法===&lt;br /&gt;
&lt;br /&gt;
SDカードは、複数のパーティションを持つことが可能で、それらのいずれかからブート可能です。&lt;br /&gt;
例えば、以下のようにカード上に3つのパーティションがある場合:&lt;br /&gt;
*パーティション1: FAT&lt;br /&gt;
*パーティション2: ext2 (rootfsを配置する場所)&lt;br /&gt;
*パーティション3: swap&lt;br /&gt;
&lt;br /&gt;
1番目のパーティションのrootに(auto)boot.txtファイルを置き、U-Bootを2番目のパーティションからシステムをブートする正しい場所へ指示します。&lt;br /&gt;
これは、rootfsの場所を示すsetenvの &amp;quot;root&amp;quot; パラメータと、ext2loadの &amp;quot;mmc x:x&amp;quot; パラメータによって指示されます。&lt;br /&gt;
上記の例の場合は、以下のようなFATパーティションのrootにある (auto)boot.txt(Windows/ Macのコンピュータを使用して簡単に編集可能)が必要:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
setenv bootargs root=/dev/mmcblk0p1 rw rootwait vram=6272K omapfb.vram=0:3000K mmc_core.removable=0&lt;br /&gt;
ext2load mmc 0:2 0x80300000 /boot/uImage&lt;br /&gt;
bootm 0x80300000&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
注記: スロット番号は0（0は左のSDスロット、1は右のSDスロット）から始まり、パーティション番号は1から始まります!&lt;br /&gt;
&lt;br /&gt;
おそらく同様に、FATパーティションのrootにカーネル (uImage) を置き、上記のようにブートするのに &amp;quot;ext2load&amp;quot; の代わりに &amp;quot;fatload&amp;quot; が使えます（これは、テストされていません！）:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
fatload mmc 0:1 0x80300000 uimage&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===システムのBoot===&lt;br /&gt;
&lt;br /&gt;
右肩ボタンを押しながらPandoraの電源を投入すると、SDカードから起動できます。(boot.txtの代わりにautoboot.txtを作成することを選択した場合、この手順は必要ありません) 。この場合未設定の画像になり、起動に少し時間がかかり、そして初回起動のダイアログが表示されることに注意してください。&lt;br /&gt;
&lt;br /&gt;
==NANDへのアクセス==&lt;br /&gt;
一度SDからシステムを起動したあと、NANDのrootfsから起動したい場合があります。その時は以下のように行って下さい。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo mkdir /mnt/nand&lt;br /&gt;
sudo ubiattach /dev/ubi_ctrl -m 4&lt;br /&gt;
sudo mount -t ubifs ubi0:rootfs /mnt/nand&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==他の情報==&lt;br /&gt;
システムにアクセス可能な領域を増やすために、SDカードを使用する代わりの方法は、[[Extend_Utils#OS_Extends | OS Extend]] [[Image:Flag_gb.png]] です。これは、rootファイルシステムが複数の物理デバイス上に存在することができます。&lt;br /&gt;
&lt;br /&gt;
==参考==&lt;br /&gt;
*[http://www.rjmitchell.ca/~jeff/blog2009/2010/06/07/pandora-running-firmware-from-sd-card-instead-of-nand-flash/ Skeezix's blog] [[Image:Flag_gb.png]]&lt;br /&gt;
*[http://www.gp32x.com/board/index.php?/topic/54290-up-to-date-firmware-tarball GP32x フォーラムのトピック &amp;quot;Up to date firmware tarball&amp;quot;] [[Image:Flag_gb.png]]&lt;br /&gt;
*[http://openpandora.org/firmware/ 公式サイトのファームウェアのページ] [[Image:Flag_gb.png]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Booting]]&lt;br /&gt;
[[Category:Storage card]]&lt;br /&gt;
[[Category:Operating system]]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Jp:Running_Linux_from_an_SD_card&amp;diff=10288</id>
		<title>Jp:Running Linux from an SD card</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Jp:Running_Linux_from_an_SD_card&amp;diff=10288"/>
		<updated>2012-05-05T13:38:36Z</updated>

		<summary type="html">&lt;p&gt;Notaz: remove ttyS0, breaks new kernel&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==はじめに==&lt;br /&gt;
&lt;br /&gt;
[[Jp:Introduction to firmware|ファームウェアの紹介]]ページで説明されているように、Pandoraは[[SD card]] [[Image:Flag_gb.png]] からのシステム起動も可能です。このチュートリアルでは、ブートできるAngstromのオペレーティングシステムのコピーを使用して、SDカードを作成するために必要な手順を説明します。&lt;br /&gt;
&lt;br /&gt;
{{hint&lt;br /&gt;
|注記: このチュートリアルでは、Linuxを使用していることを想定し、パンドラ上で実行する必要がある例を示します。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==ファームウェアのコピーを取得する==&lt;br /&gt;
&lt;br /&gt;
[http://www.gp32x.com/board/index.php?/topic/54290-up-to-date-firmware-tarball このトピック] [[Image:Flag_gb.png]] で説明された、Pandoraの[[Jp:NAND|NAMD]]からデータを取得するために使用できる方法があります。それは、単にtarファイルを抽出するだけで簡単です。&lt;br /&gt;
&lt;br /&gt;
*[http://openpandora.org/firmware/ ここ] (pandora-rootfs.tar.bz2 が何をするのか) [[Image:Flag_gb.png]] を見て下さい、そして公式のOpenPandoraのサイトから最新バージョンを入手して下さい。このファームウェアのバージョンが、不安定でテストされていないかもしれないことに注意してください！&lt;br /&gt;
&lt;br /&gt;
*先のリンクに障害がある場合は、[http://pandora.digital52.com/downloads/Angstrom-pandora-xfce-image-glibc-ipk-2010.4-test-20100614-omap3-pandora.rootfs.tar.bz2 この古いリファレンスのイメージ] [[Image:Flag_gb.png]] をダウンロードして下さい。&lt;br /&gt;
&lt;br /&gt;
*上記の二つが動作しない場合は、[http://www.codejedi.com/pandora/libpnd/pandora-xfce-image-omap3-pandora-20101705-image-for-checking-fixes.tar.bz2 さらに古いイメージ] [[Image:Flag_gb.png]] をダウンロード出来ます。&lt;br /&gt;
&lt;br /&gt;
*また、SDカードのパーティションに、NAND上で動作するファームウェアをコピーすることができます。これは、以下の独自のセクションに示す通りです。&lt;br /&gt;
&lt;br /&gt;
==SDカードのパーティション==&lt;br /&gt;
&lt;br /&gt;
このステップはオプションです。&lt;br /&gt;
&lt;br /&gt;
SDカードをいくつかのパーティションに分割したい場合(見て、[[Jp:Running Linux from an SD card#ブート用マルチパーティションSDカードの作成方法|ブート用マルチパーティションSDカードの作成方法]])は、パーティションテーブルを作成するために、Pandoraの''cfdisk''コマンドラインツールを使用することができます。Pandoraのファームウェア(Zaxxon HF5のような)は、FATパーティションをフォーマットするコマンドを持っていないことに注意してください、FAT/ext2/swapを使用する場合、後で別のシステム(Windows環境下で、ディスク管理ツールを使用)で、最初のパーティションをフォーマットする必要があります。&lt;br /&gt;
&lt;br /&gt;
カードが左側のスロットにある場合:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo cfdisk -z /dev/mmcblk0&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cfdisk -z は、クリーンなパーティションテーブルから始めます - 現在設定されているかを確認したい場合は、''cfdisk /dev/mmcblk0''を使用してください。&lt;br /&gt;
&lt;br /&gt;
プライマリパーティションのみを使用してください(よって4分割までに限定です)。&lt;br /&gt;
&lt;br /&gt;
==ext2にSDカードをフォーマット==&lt;br /&gt;
&lt;br /&gt;
あなたは単一のext2パーティションを持つように、SDカードをフォーマットする必要があります; [[ext3]] も同様&amp;lt;sup&amp;gt;[http://www.gp32x.com/board/index.php?/topic/54928-64gb-sdxc-cards/]&amp;lt;/sup&amp;gt; で、より信頼性が高い&amp;lt;sup&amp;gt;[http://www.gp32x.com/board/index.php?/topic/54928-64gb-sdxc-cards/page__view__findpost__p__901072]&amp;lt;/sup&amp;gt;です。あなたが好むなら、2番目にswapパーティションを持つことができます。GUIツールと同様に使用できるコマンドラインツールがあります。&lt;br /&gt;
&lt;br /&gt;
===コマンドラインを使用===&lt;br /&gt;
正しいデバイスにアクセスしているのを確認してから、これらのコマンドラインツールを使用するように注意してください。あなたに尋ねることはありませんが、デバイス上のデータが破壊されます。このコマンドは、空のext2フォーマットされたファイルシステムを持つ、既存のパーティションに置き換えます(ほとんどのSDカードは、出荷時に単一のFATパーティションで設定されています)。''/dev/mmcblk0p1'' をあなたのSDカード(左のスロットで、firstパーティション)と仮定し、''LABELNAME'' をパーティション名とします:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkfs.ext2 -L LABELNAME /dev/mmcblk0p1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
もしSDカードをフォーマットして問題が発生した場合、最初にそれをunmountしてみてください:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo umount /media/[LABELNAME of SD card]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GUIツールを使用===&lt;br /&gt;
GUIツールを使用すると、誰かが使用する方法を指示する必要がないほど簡単です。今のところこれは読者のために、宿題として残しておきます（誰かが使用方法を書き込むまで）。&lt;br /&gt;
&lt;br /&gt;
==コピーとブート==&lt;br /&gt;
&lt;br /&gt;
===SDカードにファイルをコピー===&lt;br /&gt;
ダウンロードした(もしくは作成した)tar.bz2ファイルを持つディレクトリに移動(cd 実行)して次を実行:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo tar -xvjf &amp;lt;tarfile&amp;gt;.tar.bz2 -C &amp;lt;SD card&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pandora上でこれを行う場合、&amp;lt;SD card&amp;gt; は /media/mmcblk0p1 のようになります(Pandoraの第一(左側)SDカードスロットの場合)。ラベルがない場合、Ubuntu上では /media/disk のようになります。また、このためのGUIツールを使用して試すことができますが、私は強運を持っていませんでした。&lt;br /&gt;
&lt;br /&gt;
===もしくはNANDからSDカードにファームウェアをコピー===&lt;br /&gt;
&lt;br /&gt;
以下は、パスワードを聞いてきます。すべてにsudoを使うのは無駄だろうと思ったので、すべての操作はroot権限が必要です。&lt;br /&gt;
root下にmountされた他のファイルシステム（カーネルの仮想ファイルシステム /proc および /sys 、そしてSDカードのような）と共に、root fsを別の場所(&amp;quot;/mp&amp;quot;)にmountします。これにより、SDのファイルシステムにNANDの内容のライブコピーを取ることができます。  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo su&lt;br /&gt;
mkdir /mp&lt;br /&gt;
mount --bind / /mp&lt;br /&gt;
cp -va /mp/* /media/&amp;lt;SD card&amp;gt;&lt;br /&gt;
umount /mp&lt;br /&gt;
rmdir /mp&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===boot.txtの設定===&lt;br /&gt;
[[boot.txt]](または、自動的にbootしたい場合はautoboot.txt)と呼ばれる新しいファイルを作成し、コピーして以下のテキストを貼り付けます。SDカードのrootのrootにそのファイルをコピーします。&lt;br /&gt;
&lt;br /&gt;
{{warning&lt;br /&gt;
|あなたがWindows上でファイルを編集する場合、[http://notepad-plus-plus.org/ Notepad++] [[Image:Flag_gb.png]] のような高度なテキストエディタを使用し、UNIX形式に変換してください(NP++では: Edit -&amp;gt; EOL Conversion -&amp;gt; UNIX format)。DOS形式の改行がある場合は、uImageのファイル名に隠された文字を付加するので、ext2load は &amp;quot;file not found&amp;quot; のようなエラーで失敗するでしょう。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
boot.txt ([http://openpandora.org/firmware/README.txt 公式ファームウェアサイトより] [[Image:Flag_gb.png]] )&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
setenv bootargs root=/dev/mmcblk0p1 rw rootwait vram=6272K omapfb.vram=0:3000K mmc_core.removable=0&lt;br /&gt;
ext2load mmc 0 0x80300000 /boot/uImage&lt;br /&gt;
bootm 0x80300000&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
この boot.txt では、カードがext2でフォーマットされ、SDカードからカーネルをロードすると仮定していることも注意してください。ext2フォーマットされたSDカードから起動したくない場合は、&lt;br /&gt;
次を使って下さい&lt;br /&gt;
boot.txt&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
setenv bootargs root=/dev/mmcblk0p1 rw rootwait vram=6272K omapfb.vram=0:3000K mmc_core.removable=0&lt;br /&gt;
ubi part boot &amp;amp;&amp;amp; ubifsmount boot &amp;amp;&amp;amp; ubifsload ${loadaddr} uImage &amp;amp;&amp;amp; bootm ${loadaddr} &amp;amp;&amp;amp; boot&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
この場合、ブートローダーが内部NANDメモリー上のカーネルを探して教えてくれます（テストが行われないことに注意）。&lt;br /&gt;
&lt;br /&gt;
両方の boot.txt は、左側のSDカードスロット、最初のパーティションからブートしていると仮定しています。右のスロットから起動する場合には、&amp;quot;mmcblk0p1&amp;quot; から &amp;quot;mmcblk1p1&amp;quot; に変更しましょう。&lt;br /&gt;
&lt;br /&gt;
===ブート用マルチパーティションSDカードの作成方法===&lt;br /&gt;
&lt;br /&gt;
SDカードは、複数のパーティションを持つことが可能で、それらのいずれかからブート可能です。&lt;br /&gt;
例えば、以下のようにカード上に3つのパーティションがある場合:&lt;br /&gt;
*パーティション1: FAT&lt;br /&gt;
*パーティション2: ext2 (rootfsを配置する場所)&lt;br /&gt;
*パーティション3: swap&lt;br /&gt;
&lt;br /&gt;
1番目のパーティションのrootに(auto)boot.txtファイルを置き、U-Bootを2番目のパーティションからシステムをブートする正しい場所へ指示します。&lt;br /&gt;
これは、rootfsの場所を示すsetenvの &amp;quot;root&amp;quot; パラメータと、ext2loadの &amp;quot;mmc x:x&amp;quot; パラメータによって指示されます。&lt;br /&gt;
上記の例の場合は、以下のようなFATパーティションのrootにある (auto)boot.txt(Windows/ Macのコンピュータを使用して簡単に編集可能)が必要:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
setenv bootargs debug root=/dev/mmcblk0p2 rw rootdelay=2 console=ttyS0,115200n8 vram=6272K omapfb.vram=0:3000K&lt;br /&gt;
ext2load mmc 0:2 0x80300000 /boot/uImage&lt;br /&gt;
bootm 0x80300000&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
注記: スロット番号は0（0は左のSDスロット、1は右のSDスロット）から始まり、パーティション番号は1から始まります!&lt;br /&gt;
&lt;br /&gt;
おそらく同様に、FATパーティションのrootにカーネル (uImage) を置き、上記のようにブートするのに &amp;quot;ext2load&amp;quot; の代わりに &amp;quot;fatload&amp;quot; が使えます（これは、テストされていません！）:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
fatload mmc 0:1 0x80300000 uimage&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===システムのBoot===&lt;br /&gt;
&lt;br /&gt;
右肩ボタンを押しながらPandoraの電源を投入すると、SDカードから起動できます。(boot.txtの代わりにautoboot.txtを作成することを選択した場合、この手順は必要ありません) 。この場合未設定の画像になり、起動に少し時間がかかり、そして初回起動のダイアログが表示されることに注意してください。&lt;br /&gt;
&lt;br /&gt;
==NANDへのアクセス==&lt;br /&gt;
一度SDからシステムを起動したあと、NANDのrootfsから起動したい場合があります。その時は以下のように行って下さい。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo mkdir /mnt/nand&lt;br /&gt;
sudo ubiattach /dev/ubi_ctrl -m 4&lt;br /&gt;
sudo mount -t ubifs ubi0:rootfs /mnt/nand&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==他の情報==&lt;br /&gt;
システムにアクセス可能な領域を増やすために、SDカードを使用する代わりの方法は、[[Extend_Utils#OS_Extends | OS Extend]] [[Image:Flag_gb.png]] です。これは、rootファイルシステムが複数の物理デバイス上に存在することができます。&lt;br /&gt;
&lt;br /&gt;
==参考==&lt;br /&gt;
*[http://www.rjmitchell.ca/~jeff/blog2009/2010/06/07/pandora-running-firmware-from-sd-card-instead-of-nand-flash/ Skeezix's blog] [[Image:Flag_gb.png]]&lt;br /&gt;
*[http://www.gp32x.com/board/index.php?/topic/54290-up-to-date-firmware-tarball GP32x フォーラムのトピック &amp;quot;Up to date firmware tarball&amp;quot;] [[Image:Flag_gb.png]]&lt;br /&gt;
*[http://openpandora.org/firmware/ 公式サイトのファームウェアのページ] [[Image:Flag_gb.png]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Booting]]&lt;br /&gt;
[[Category:Storage card]]&lt;br /&gt;
[[Category:Operating system]]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=GLESGAE&amp;diff=10287</id>
		<title>GLESGAE</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=GLESGAE&amp;diff=10287"/>
		<updated>2012-05-05T13:35:31Z</updated>

		<summary type="html">&lt;p&gt;Notaz: remove ttyS0, breaks new kernel&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GLESGAE - GL ES Game Application Engine =&lt;br /&gt;
&lt;br /&gt;
GLESGAE is a vehicle for a series of tutorials on building a game engine for the Pandora console from scratch.&amp;lt;br /&amp;gt;&lt;br /&gt;
These will be written when I have time.. the uncreated ones below being an indicator of what's to come.&amp;lt;br /&amp;gt;&lt;br /&gt;
Unwritten parts may be split up, moved, or otherwise manipulated before actually going live, so don't take the following as set in stone till the link turns blue!&lt;br /&gt;
&lt;br /&gt;
== Table of Contents ==&lt;br /&gt;
Part One - Setup Stuff!&lt;br /&gt;
* [http://pandorawiki.org/index.php?title=GLESGAE#GLESGAE_Overview GLESGAE Overview]&lt;br /&gt;
* [http://pandorawiki.org/index.php?title=GLESGAE#Engine_Design_Overview Engine Design Overview]&lt;br /&gt;
* [http://pandorawiki.org/index.php?title=GLESGAE#Environment_Setup Environment Setup]&lt;br /&gt;
* [[GLESGAE:Setting Up A Window and Context]]&lt;br /&gt;
* [[GLESGAE:The Event and Input Systems]]&lt;br /&gt;
Part Two - Show me Stuff!&lt;br /&gt;
* [[GLESGAE:Making a Mesh]]&lt;br /&gt;
* [[GLESGAE:Fixed Function Rendering Contexts]]&lt;br /&gt;
* [[GLESGAE:Shader Based Contexts]]&lt;br /&gt;
* [[GLESGAE:The Transform Stack]]&lt;br /&gt;
* [[GLESGAE:Fixed Function Transformations]]&lt;br /&gt;
* [[GLESGAE:Shader Based Transformations]]&lt;br /&gt;
* [[GLESGAE:Dealing with Textures]]&lt;br /&gt;
* [[GLESGAE:Making another Mesh with Vertex Buffers]]&lt;br /&gt;
Part Three - Manage my Stuff!&lt;br /&gt;
* [[GLESGAE:Managing Resources Overview]]&lt;br /&gt;
* [[GLESGAE:The Resource Manager]]&lt;br /&gt;
* [[GLESGAE:State Management Overview]]&lt;br /&gt;
* [[GLESGAE:Implementing The Game States]]&lt;br /&gt;
Part Four - The First Evaluation&lt;br /&gt;
* [[GLESGAE:First Evaluation Overview]]&lt;br /&gt;
* [[GLESGAE:First Evaluation Graphics]]&lt;br /&gt;
* [[GLESGAE:First Evaluation Resources]]&lt;br /&gt;
Part Five - Make it do Stuff!&lt;br /&gt;
* [[GLESGAE:Logic Processing Overview]]&lt;br /&gt;
* [[GLESGAE:Dealing with Entities]]&lt;br /&gt;
* [[GLESGAE:Playing with Scripts]]&lt;br /&gt;
Part Six - Push Stuff around!&lt;br /&gt;
* [[GLESGAE:Physics Processing Overview]]&lt;br /&gt;
* [[GLESGAE:Implementing Box2D Physics]]&lt;br /&gt;
* [[GLESGAE:Implementing Bullet Physics]]&lt;br /&gt;
Part Seven - Make Stuff squeak!&lt;br /&gt;
* [[GLESGAE:Sound Processing Overview]]&lt;br /&gt;
* [[GLESGAE:Implementing OpenAL]]&lt;br /&gt;
Part Eight - The Second Evaluation&lt;br /&gt;
* [[GLESGAE:Second Evaluation Overview]]&lt;br /&gt;
* [[GLESGAE:Second Evaluation Logic]]&lt;br /&gt;
* [[GLESGAE:Second Evaluation Physics]]&lt;br /&gt;
* [[GLESGAE:Second Evaluation Sound]]&lt;br /&gt;
Part Nine - Poke Stuff from afar!&lt;br /&gt;
* [[GLESGAE:Networking Overview]]&lt;br /&gt;
* [[GLESGAE:A Basic Networking System]]&lt;br /&gt;
Part Ten - Advanced Stuff!&lt;br /&gt;
* [[GLESGAE:Library Stubs]]&lt;br /&gt;
Part Eleven - Tool Stuff!&lt;br /&gt;
* [[GLESGAE:Tools Overview]]&lt;br /&gt;
* [[GLESGAE:Mesh Converter]]&lt;br /&gt;
&lt;br /&gt;
= GLESGAE Overview =&lt;br /&gt;
To try not spam the wiki to death, I'll include the first two parts here, but subsequent parts will be in their own pages as they're more to deal with actual development problems rather than general overview stuff.&amp;lt;br /&amp;gt;&lt;br /&gt;
Where possible, I'll also combine things if they're related to the last part that I did - IE: generating a window, and then adding ES contexts.&lt;br /&gt;
&lt;br /&gt;
Originally, I was going to attempt to take part in the Platformer Homebrew Competition over on the OpenPandora boards. However, with free time being very limited, no engine to speak of, the need to do assets and that it's already been going a month so I'm a bit behind, I've decided to tackle a somewhat different challenge - build and document an engine, originally for Pandora and spawning out elsewhere later.&lt;br /&gt;
&lt;br /&gt;
Yes, another engine.&lt;br /&gt;
&lt;br /&gt;
I've been dragging my old SGZEngine around for quite a while now.. though it's never really got much further than it has, and it's full of weird quirks and bugs that with each project, I spend more time working around than writing actual logic.&amp;lt;br /&amp;gt;&lt;br /&gt;
I did start another engine - SGEngine ( dropped the Z ) - however this was highly experimental in fobbing off every subsystem to a dynamically runtime loadable DLL to facilitate mix and matching bits and pieces. Especially useful for testing OpenGL and D3D renderers and a neat hack, but not much use as it was becoming highly complicated to do anything.&amp;lt;br /&amp;gt;&lt;br /&gt;
This brings us to GLESGAE. The name being chosen due to me being Scottish, and it being an amusing mnemoic to begin with.&lt;br /&gt;
&lt;br /&gt;
Recently, I've been doing a lot of Android programming.&amp;lt;br /&amp;gt;&lt;br /&gt;
This involved writing a custom renderer for GLES1 and then onto GLES2.&amp;lt;br /&amp;gt;&lt;br /&gt;
With my previous experience of writing such low level GL code being glBegin(); ... glEnd(); I effectively got thrown in at the deep end and had to fight a bit to stay afloat. However, I pulled through, and while furthering the work engine is always going to be appreciated by them; there's already a defined system of how things work, and I wanted to change a bit too much of that.. so a new personal engine it is; using the new found knowledge I've just gained.&lt;br /&gt;
&lt;br /&gt;
So, with the introduction out of the way, this ( weekly, with any luck ) set of tutorials, guides and random gibberings on building an engine while I continue GLESGAE shall begin.&lt;br /&gt;
&lt;br /&gt;
= Engine Design Overview =&lt;br /&gt;
&lt;br /&gt;
Game Engines are somewhat of a necessary evil these days if you have any inclination of producing more than one game on a system, or one game on many systems.&lt;br /&gt;
However, there is also a very real danger of writing a solution for a non-existing problem - an engine without a game.&lt;br /&gt;
As such, I will be writing a game alongside this as well, to make sure that the engine does in fact have useful features.&lt;br /&gt;
&lt;br /&gt;
The danger of writing an engine without a game in mind, is that you keep adding bits and pieces and end up not really getting anywhere. Which is exactly what happened with SGEngine. Lots of neat hacks, but it never really got anywhere, and it's a right pig to try and get working for anything serious now.&lt;br /&gt;
It was still a useful educational experience, as I learned how to deal with dynamic runtime libraries across Windows and *nix systems, as well as a more saner route for platform independent modules - SGZEngine essentially had a platform folder where all the code went, and interfaces and objects everywhere else. It wasn't particularly clean, even though it sounds like it should've been.&lt;br /&gt;
&lt;br /&gt;
So what is an Engine?&amp;lt;br /&amp;gt;&lt;br /&gt;
In the purest sense, it's a collection of generic functions that when wired up can help you create code much quicker. Generally, a Game Engine can pull in other Engines such as Rendering Engines, Audio Engines and Physics Engines - all tailor made for their own specific domains.&amp;lt;br /&amp;gt;&lt;br /&gt;
As programmers we do tend to have the habit of being a bit ego-centric with an &amp;quot;I can rewrite the wheel better!&amp;quot; attitude. This can get us in to trouble at times! While I specifically want to deal with GL ES rendering on my own, I'll be pulling in OpenAL for audio and bullet or perhaps box2d for Physics; while trying to leave things open to be able to switch these out for something else at a later date.&lt;br /&gt;
&lt;br /&gt;
This is therefore going to be a set of tutorials on building a Game Engine with a custom Graphics Engine in particular.&amp;lt;br /&amp;gt;&lt;br /&gt;
However, a Game Engine isn't just Audio, Graphics and Physics - though these are by far the most interesting parts of a Game Engine.&lt;br /&gt;
You'll also generally need a set of utility functions that range from file I/O, input handling, event handling, memory management, resource management, and much more.&amp;lt;br /&amp;gt;&lt;br /&gt;
You may also want to abstract logic out to a scripting engine; something I've a lot of experience with and quite fond of, so shall be pulling in Lua as well for this purpose.&lt;br /&gt;
&lt;br /&gt;
While on PC development ( and by extension, Pandora ) you can generally get away with just new/malloc random things at any point and free/delete when necessary all over the place, certain consoles don't particularly like that and you're generally better off managing your own heap and memory pages so you know exactly where your memory is at any time, and can cache things yourself, rather than relying on anything that may or may not do what you expect.&lt;br /&gt;
&lt;br /&gt;
File Management can also catch you unaware on other platforms. Android, for example, has a rather strict permission system whereby you only really have access to your own package, and the contents of the sdcard. Granted, Android 2.3 gives you more control, but if you're writing NDK apps for &amp;lt;2.3 you'll have to jump back and forth between Java and C where file management becomes a whole new game of fun.&lt;br /&gt;
&lt;br /&gt;
And what about input? The Pandora has those nubs! those lovely lovely nubs, dpad, face buttons, shoulder buttons, touchscreen and a full keyboard! You've also got the possibility of godknows what connected via USB - game pads, mice, full-sized keyboards...&lt;br /&gt;
&lt;br /&gt;
I won't even start about threading and the chaos that can bring... then there's networking, which is even worse!&lt;br /&gt;
&lt;br /&gt;
Finally, there's the thought of how you organize data and feed it to your engine.&amp;lt;br /&amp;gt;&lt;br /&gt;
These days, most engines follow a very data-driven design - and for good reason! You don't want to have to recompile half your codebase just for changing some NPC text, repositioning a graphic, loading a new model, etc.. GLESGAE is going to be data driven - and that also means tools that will be able to create the data to feed it, in the format that works best for the target platform.&amp;lt;br /&amp;gt;&lt;br /&gt;
We shall be building these tools along the way too, and where possible, also having them run on the Pandora itself.&lt;br /&gt;
&lt;br /&gt;
I'll cover more bits as we get to them.. for now, we'll get the Environment Setup.&lt;br /&gt;
&lt;br /&gt;
= Environment Setup =&lt;br /&gt;
&lt;br /&gt;
== I'm Lazy, Give Me A Pre-Configured Thing! ==&lt;br /&gt;
Here you go: http://www.stuckiegamez.co.uk/apps/pandora/SimpleDev/zaxxon-premade-dev.tar.bz2 ~250mb&lt;br /&gt;
&lt;br /&gt;
Extract to an ext2/3 formatted SD card, and boot. Simple!&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''''' This is a bit old, now.. and may have somewhat dodgy WiFi, but I'll get round to fixing this soon ( hopefully by 13th May. )'''''&lt;br /&gt;
&lt;br /&gt;
== Tell Me What You Did ==&lt;br /&gt;
This weekend is essentially the overview and setup phase, so it's a bit boring I'm afraid.&amp;lt;br /&amp;gt;&lt;br /&gt;
To keep everyone on the same page, I'm going to assume you're using Angstrom from an SD card, that you've installed GCC et al on it, and you'll be booting from it for development purposes.&lt;br /&gt;
&lt;br /&gt;
This gives us a few benefits;&amp;lt;br /&amp;gt;&lt;br /&gt;
* We are developing on the target hardware and can test things immediately.&lt;br /&gt;
* We can keep the NAND in a near enough vanilla state to ensure we don't accidentally pull in and use random libraries that not everyone will have.&lt;br /&gt;
* If we do something really bad, we've only messed up an SD card and can just re-extract the tarball and start again, rather than reflash the NAND!&lt;br /&gt;
&lt;br /&gt;
If you've already got an SD card setup with dev tools, then you can leave class early and I'll see you next week.&amp;lt;br /&amp;gt;&lt;br /&gt;
Same for if you have a preferred development environment already.. if it works for you, there's no point changing it.&amp;lt;br /&amp;gt;&lt;br /&gt;
The rest of you, pay attention!&lt;br /&gt;
&lt;br /&gt;
We'll do everything on the Pandora, to save having to deal with Linux, Windows, Mac, BSD, BeOS, whatever... madness.&amp;lt;br /&amp;gt;&lt;br /&gt;
I advise at least grabbing yourself a 2Gig SD card.. go for a bigger card if you like, but 2Gig is probably a good minimum and are reasonably cheap these days.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Grab your SD card and ensure everything you want from it has been removed - we're about to sacrifice it to the Pandora Dev Gods.&amp;lt;br /&amp;gt;&lt;br /&gt;
Stick it in your left slot.&amp;lt;br /&amp;gt;&lt;br /&gt;
Open up a terminal.&amp;lt;br /&amp;gt;&lt;br /&gt;
You'll need to manually unmount it before going near it with cfdisk to repartition.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo umount /dev/mmcblk0p1''''' -- and possibly p2, p3, p# depending on how many partitions it has. Generally, it'll only have the one.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo cfdisk /dev/mmcblk0''''' -- this'll launch cfdisk on your card.. if you see more than one partition and you've only unmounted one partition, then quit and unmount them!&lt;br /&gt;
&lt;br /&gt;
We want to delete all partitions on this card, so press right and then return to delete the current partition.&amp;lt;br /&amp;gt;&lt;br /&gt;
Press up and down to move the selector if need be to remove the rest of them if you've more than one.&amp;lt;br /&amp;gt;&lt;br /&gt;
Now we want to create a new partition, so with the Free Space selected, press right to highlight '''[ New ]''' and hit return, select '''[ Primary ]''', and let it use the full card ( just hit return. )&amp;lt;br /&amp;gt;&lt;br /&gt;
Press Left to highlight '''[ Write ]''' and press return. Type &amp;quot;yes&amp;quot; and hit return to confirm the changes, then '''[ Quit ]'''&amp;lt;br /&amp;gt;&lt;br /&gt;
You could have added swap if you wanted.. it's up to you really.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we have to format it.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo mkfs.ext2 /dev/mmcblk0p1'''''&lt;br /&gt;
&lt;br /&gt;
Remove the card and reinsert so that the system re-reads the partition table correctly and gives you access to your newly formatted partition.&lt;br /&gt;
&lt;br /&gt;
Now, we download the latest rootfs from OpenPandora.org and extract it to the card. We shall be lazy and stay in the terminal for this so...&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''cd /media/mmcblk0p1'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo su''''' -- we'll need to be root for this, as we'll have no permission by default to touch this card.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''wget -c http://openpandora.org/firmware/pandora-rootfs.tar.bz2''''' - this grabs us the latest rootfs - though lately, these appear to be very out of sync between Pandora OE and Angstrom OE so be careful!&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''tar -xjpf pandora-rootfs.tar.bz2'''' -- you could add v to the arguments if you like.. it'll let you see what it's extracting and is slightly more exciting than just waiting for it to finish! The p is for preserving permissions, x to extract, j for bz2 support and f for file.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''rm pandora-rootfs.tar.bz2'''''&lt;br /&gt;
&lt;br /&gt;
We want the system to autoboot this when the card is inserted, so let's create autoboot.txt&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''nano autoboot.txt'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
Fill it with the following:&amp;lt;br /&amp;gt;&lt;br /&gt;
 setenv bootargs root=/dev/mmcblk0p1 rw rootwait vram=6272K omapfb.vram=0:3000K mmc_core.removable=0&lt;br /&gt;
 ext2load mmc 0 0x80300000 /boot/uImage-2.6.27.46-omap1&lt;br /&gt;
 bootm 0x80300000&lt;br /&gt;
&lt;br /&gt;
That's us.. reboot and run through the First Time Configuration stuff, being sure to choose XFCE over MiniMenu, and then feel free to configure the look as you see fit.&lt;br /&gt;
&lt;br /&gt;
Now the fun bit.&lt;br /&gt;
&lt;br /&gt;
'''Warning''' - ''This is potentially dangerous as Angstrom and Pandora libraries may have gone off at tangents at this point... this is why we're doing this on an SD card rather than the NAND so if we stuff it up, we only need to reformat an SD card and not reflash the NAND!''&lt;br /&gt;
&lt;br /&gt;
Make sure your Pandora is connected to the net by whatever means you have.&amp;lt;br /&amp;gt;&lt;br /&gt;
Open up a terminal&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo opkg update'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo opkg install gcc g++ make binutils-dev cpp cpp-symlinks g++-symlinks gcc-symlinks libstdc++-dev libgles-omap3-dev subversion''''' - You could install sdl etc.. too if you want, but that's all we'll be using for now; and you'll be needing subversion later to keep up with the project.&lt;br /&gt;
&lt;br /&gt;
Now the ever popular Hello World.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''mkdir Projects'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''cd Projects'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''nano main.cpp'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
 #include &amp;lt;cstdio&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 int main(void)&lt;br /&gt;
 {&lt;br /&gt;
 	printf(&amp;quot;Hello World!\n&amp;quot;);&lt;br /&gt;
 	&lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
'''''g++ -o main main.cpp'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''./main''''' &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''' Interesting Gotcha ''' - '' In the rootfs I downloaded (HF5 RC1), ncurses hadn't been installed... '''sudo opkg install libncurses5''' if you get &amp;quot;cannot open shared object file libncurses.so.5&amp;quot; when invoking nano.''&lt;br /&gt;
&lt;br /&gt;
That's all for this week.. course you could go and install Geany, or whatever code editor you prefer.&amp;lt;br /&amp;gt;&lt;br /&gt;
Next time, we shall be opening up a window via badgering X11 directly, and getting a GL ES context up and running.&lt;br /&gt;
&lt;br /&gt;
[[Category:GLESGAE]]&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Debian_On_SD&amp;diff=10286</id>
		<title>Debian On SD</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Debian_On_SD&amp;diff=10286"/>
		<updated>2012-05-05T13:32:21Z</updated>

		<summary type="html">&lt;p&gt;Notaz: rm blank line&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Debian On SD =&lt;br /&gt;
&lt;br /&gt;
I'm going to split this into three chunks now... standard Desktop Debian on SD using Squeeze/Lenny/Sid ( choose your poison, though only Squeeze is officially tested to work by myself, ) Emdebian GRIP install, and NAND install.&lt;br /&gt;
&lt;br /&gt;
You can post feedback, bugs, etc.. on the following topics:&lt;br /&gt;
GP32X: http://www.gp32x.com/board/index.php?/topic/57097-debian-on-an-sd-card/&lt;br /&gt;
OpenPandora Boards: http://boards.openpandora.org/index.php?/topic/1819-debian-on-sd/&lt;br /&gt;
&lt;br /&gt;
I'd prefer the GP32X boards as I'm slightly more active there.&lt;br /&gt;
&lt;br /&gt;
= Little Note to Wiki Editors =&lt;br /&gt;
I change this a lot offline and then plaster the changes on during a new release.&amp;lt;br /&amp;gt;&lt;br /&gt;
If you're going to go changing this page, please contact me first so I don't accidentally obliterate your changes, or that you do changes to the style I've set out that I don't agree with!&amp;lt;br /&amp;gt;&lt;br /&gt;
This may well be against the &amp;quot;wiki spirit&amp;quot; .. but I spend days/weeks typing up these changes and testing them.. so a little consideration please :)&lt;br /&gt;
&lt;br /&gt;
== Desktop Debian ==&lt;br /&gt;
This is split into three main sections - Building from Scratch, Maintenance and Upgrades, Common Things To Do.&lt;br /&gt;
&lt;br /&gt;
''' This documents the final 1.0.3 and 1.0.4 &amp;quot;brute force&amp;quot; releases. The 1.1 &amp;quot;debianized&amp;quot; release will take a while and not involve this process at all. '''&lt;br /&gt;
&lt;br /&gt;
* Building From Scratch lets you customise everything from the outset, and lets you create your very own tailor-made distribution, rather than a pre-created one.&lt;br /&gt;
It does require a bit of Linux knowledge before diving in.. so if unsure, ask!&lt;br /&gt;
&lt;br /&gt;
* Maintenance and Upgrades covers standard Debian maintenance if you're not usually a Debian user.&lt;br /&gt;
It'll also ( in the future ) cover how to upgrade your pre-built distribution with new drivers as the official OS gets updated.&lt;br /&gt;
&lt;br /&gt;
* Common/Fun Things To Do will give you ideas on what to try in your new Debian installation. &lt;br /&gt;
Remember, this is a full desktop OS you now have squeezed into your hands, and feel free to share your cool ideas!&lt;br /&gt;
&lt;br /&gt;
If you don't want to build from scratch, you have two choices;&lt;br /&gt;
* Grab a Minimal Install and continue from [http://pandorawiki.org/index.php?title=Debian_On_SD#Desktop_Environment Desktop Environment]&lt;br /&gt;
* Grab a full build.&lt;br /&gt;
&lt;br /&gt;
The latest minimal is available here: http://www.stuckiegamez.co.uk/apps/pandora/Debian/pandora-squeeze-minimal-1.0.2.tar.bz2 &amp;lt;br /&amp;gt;&lt;br /&gt;
The latest full builds are: &lt;br /&gt;
* LXDE - http://www.stuckiegamez.co.uk/apps/pandora/Debian/pandora-squeeze-1.0.4-grip.tar.bz2&lt;br /&gt;
* XFCE - http://www.stuckiegamez.co.uk/apps/pandora/Debian/pandora-squeeze-1.0.5-grip.tar.bz2&lt;br /&gt;
&lt;br /&gt;
Remember to untar with permissions ( include '''p''' in your arguments to tar ) on to your ext2/3 formatted SD card.&amp;lt;br /&amp;gt;&lt;br /&gt;
For example: '''''tar -xvjpf pandora-squeeze*.tar.bz2 -C /media/sdcard .'''''&lt;br /&gt;
&lt;br /&gt;
Default User details are:&amp;lt;br /&amp;gt;&lt;br /&gt;
username: '''pandora'''&amp;lt;br /&amp;gt;&lt;br /&gt;
password: '''debian'''&lt;br /&gt;
&lt;br /&gt;
=== Changelog ===&lt;br /&gt;
==== Original Proof of Concept ====&lt;br /&gt;
* Released - 19th October 2010&lt;br /&gt;
* Based on Sid&lt;br /&gt;
* GDM&lt;br /&gt;
* GNOME&lt;br /&gt;
* Bit slow but workable&lt;br /&gt;
&lt;br /&gt;
==== Release 1.0 ====&lt;br /&gt;
* Released - 20th February 2011&lt;br /&gt;
* First release&lt;br /&gt;
* libts issues&lt;br /&gt;
* libpnd issues&lt;br /&gt;
* Overly fat with stuff&lt;br /&gt;
* Wifi issues for some people&lt;br /&gt;
&lt;br /&gt;
==== Release 1.0.1 ====&lt;br /&gt;
* Released - 23rd February 2011&lt;br /&gt;
* First documented release&lt;br /&gt;
* libts issues persist&lt;br /&gt;
* Most libpnd issues fixed&lt;br /&gt;
* Slimmed down to ~830mb&lt;br /&gt;
* Made Wifi issues worse and accidentally stripped out more than needed&lt;br /&gt;
&lt;br /&gt;
==== Release 1.0.2 ====&lt;br /&gt;
* Released - 22nd March 2011&lt;br /&gt;
* Replaced libts with evdev... doesn't cause X choking.&lt;br /&gt;
* libpnd should behave now, though the pnd services don't seem to get kicked till a terminal is opened, and even then they turn zombie.. eh?&lt;br /&gt;
* Added full dev setup.. so it's fat.. it's 1.2gig extracted.&lt;br /&gt;
* Replaced GDM with SLIM.&lt;br /&gt;
&lt;br /&gt;
==== Release 1.0.3 ====&lt;br /&gt;
* Released - 27th March 2011&lt;br /&gt;
* Effectively 1.0.2 with the WiFi and Session Management bug fixed.&lt;br /&gt;
* Much slimmer as it's done from scratch again without the dev setup ~805mb rootfs&lt;br /&gt;
&lt;br /&gt;
==== Release 1.0.4 ====&lt;br /&gt;
* Released - 4th April 2011&lt;br /&gt;
* 1.0.3 with lots of bugs fixed and based on Grip so it's got even more and super tiny in comparision.&lt;br /&gt;
* Contains; LXDE, GDM, Gnome MPlayer, IceWeasel ( firefox ) and Synaptic&lt;br /&gt;
&lt;br /&gt;
==== Release 1.0.5 ====&lt;br /&gt;
* Released - 9th April 2011&lt;br /&gt;
* 1.0.4 with XFCE instead of LXDE and a few bug fixes ( pandora-state's rc scripts being set correctly, and console key map .. see the relevant bits below if you need them, but other than that, it's exactly the same - just with XFCE instead of LXDE )&lt;br /&gt;
&lt;br /&gt;
=== Release 1.1 Proposed ===&lt;br /&gt;
* Expected - May 2011 ( maybe )&lt;br /&gt;
* libts, amongst other libraries, using OpenPandora patched version.&lt;br /&gt;
* Pandora specifics wrapped as Debian archives.&lt;br /&gt;
* Pandora specifics repo to deal with updates to drivers from mainline.&lt;br /&gt;
* Perhaps an updated kernel using the patches from mainline.&lt;br /&gt;
&lt;br /&gt;
== Building From Scratch ==&lt;br /&gt;
This isn't for the feint of heart.. if you don't understand something - stop! Ask or read up on it before continuing. While I haven't mangled my Pandora or PC in any way from doing this, it's still possible to make a mess, so be careful!&lt;br /&gt;
&lt;br /&gt;
This is split into many parts.. it's advised to go through this in order.&lt;br /&gt;
&lt;br /&gt;
* Getting a Minimal Install from Scratch&lt;br /&gt;
* Desktop Environment&lt;br /&gt;
* Device Drivers and PNDs&lt;br /&gt;
* Users, First Boot Scripts and Permissions&lt;br /&gt;
* Reboot and Troubleshooting&lt;br /&gt;
&lt;br /&gt;
=== Getting a Minimal Install from Scratch ===&lt;br /&gt;
&lt;br /&gt;
There are two options here:&lt;br /&gt;
* Linux PC&lt;br /&gt;
* On Pandora&lt;br /&gt;
&lt;br /&gt;
==== Linux PC ====&lt;br /&gt;
On a Linux PC, run debootstrap to grab the version you want. We shall be using Squeeze today:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo debootstrap --arch armel --foreign squeeze /tmp/pandora-debian ftp://ftp.uk.debian.org/debian'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
Grab a large SD card, and repartition it to have one large ext2/ext3 partition and format as normal.&amp;lt;br /&amp;gt;&lt;br /&gt;
Copy all the files from /tmp/pandora-debian over to your new SD card partition.&amp;lt;br /&amp;gt;&lt;br /&gt;
Put it in your Pandora.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo chroot /media/mmcblk0p1''''' -- assuming it's in your first slot.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''/debootstrap/deboostrap --second-stage'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
... this takes a while...&lt;br /&gt;
&lt;br /&gt;
==== Pandora ====&lt;br /&gt;
Alternatively, you can run cdebootstrap on the Pandora itself, or debootstrap from within Debian... this bypasses the need of doing the second-stage madness.&amp;lt;br /&amp;gt;&lt;br /&gt;
Grab it from here: http://packages.debian.org/sid/cdebootstrap-static and select the armel package.&amp;lt;br /&amp;gt;&lt;br /&gt;
Download it to /tmp preferably, but your home folder will do, or anywhere you like. For now, I shall assume you downloaded it to /tmp&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''cd /tmp'''''  -- Again, if you downloaded elsewhere, change to that directory instead.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''ar xv cdebootstrap*.deb''''' -- We're using the archive tool to extract with verbosity our cdebootstrap package. &amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo tar -zxvf data.tar.gz -C /'''''  -- Now we're using tar to extract, with gzip support, again with verbosity, the file data.tar.gz, changing the Current directory to / so that it extracts systemwide on our NAND. We're running this command sudo so we have write permissions.&amp;lt;br /&amp;gt;&lt;br /&gt;
Now we just run cdebootstrap-static with a few parameters, and wait.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''cdebootstrap-static --allow-unauthenticated -f minimal squeeze /media/mmcblk1p1''''' -- What we're doing here, is we're allowing &amp;quot;unauthenticated&amp;quot; packages to be installed. As we don't, or probably don't, have the gnupg keychain stuff configured, all packaged will be &amp;quot;unauthenticated&amp;quot; regardless of whether they are or not. We're telling it we also want a minimal install of the squeeze release, and to install to where we have the mount point of Partition 1 of the SD card in Slot 1 - which you should have already partitioned and formatted as ext2! &amp;lt;br /&amp;gt;&lt;br /&gt;
This takes a while... perhaps longer than doing the first stage on the PC and second-stage on Pandora.&lt;br /&gt;
&lt;br /&gt;
=== Setting up Apt ===&lt;br /&gt;
I've forgotten about this, as mostly it'll be set to the default Debian repository, but should you want to change it: &amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo nano /etc/apt/sources.list'''''&lt;br /&gt;
&lt;br /&gt;
UK people can set this to ''deb ftp://ftp.uk.debian.org/debian main non-free contrib'' to get pretty much everything, or can pick whichever local Debian repository they like - but be warned that not all of them have an armel repo!&amp;lt;br /&amp;gt;&lt;br /&gt;
By default, debootstrap will likely only get main.. adding the non-free and contrib branches are optional, but bring in more stuff.&lt;br /&gt;
&lt;br /&gt;
=== Desktop Environment ===&lt;br /&gt;
Now you have Debian, the world is yours for the taking!&lt;br /&gt;
Or something like that...&lt;br /&gt;
&lt;br /&gt;
Debian comes with a wide variety of desktop environments and window managers; from XFCE as you use on Angstrom by default, to KDE, GNOME, LXDE, Fluxbox, Enlightenment, etc..&amp;lt;br /&amp;gt;&lt;br /&gt;
Now's the time to choose one of them to install.. be aware that the bigger they are, the longer they'll take to install and the more resources they will eat up while in use.. as a rough guide from heavy to light:&amp;lt;br /&amp;gt;&lt;br /&gt;
* KDE&lt;br /&gt;
* GNOME&lt;br /&gt;
* Enlightenment ( Squeeze has e16 .. and is faster than I expected )&lt;br /&gt;
* XFCE&lt;br /&gt;
* LXDE&lt;br /&gt;
* Fluxbox&lt;br /&gt;
&lt;br /&gt;
Having recently tested KDE myself, it doesn't quite seem to work properly, so I'd avoid that for the moment... especially as it takes about ten hours to install!&lt;br /&gt;
&lt;br /&gt;
We shall install LXDE as it's a bit more light weight than XFCE and still provides a reasonable mainstream environment. While I do prefer Fluxbox overall, it's a bit of a paradigm shift to use from your standard desktop machine.&lt;br /&gt;
&lt;br /&gt;
If you haven't already, chroot into your environment.&lt;br /&gt;
You should already be root, so we'll get on with the installing.&lt;br /&gt;
&lt;br /&gt;
'''''apt-get install lxde'''''&lt;br /&gt;
&lt;br /&gt;
This may well take an age, so go do something else in the meantime.&amp;lt;br /&amp;gt;&lt;br /&gt;
You may also want a login manager.. your choices are amongst XDM, GDM, KDM and SLIM to name a few. KDM is perhaps a bit heavy, whereas GDM works fairly well even though it's rather heavy too. SLIM is what you use on Pandora anyway, and XDM is rather basic but usable all the same. GDM is automatically pulled in via LXDE anyway, so we may as well just use that for now.&lt;br /&gt;
&lt;br /&gt;
Additional:&amp;lt;br /&amp;gt;&lt;br /&gt;
Installing LXDE via the above command pulls in GDM by default.. if you use ''lxde-core'' instead, it removes a lot of the stuff that pulls in random things, and if you additionally use '''''aptitude install --without-recommends lxde-core''''' it should strip out even more. You will need to manually install ''less'', ''zenity'', and ''xterm'' for example. Zenity is especially needed for all the Pandora config scripts.&lt;br /&gt;
&lt;br /&gt;
1.0.3 has slimmed stuff down again.&amp;lt;br /&amp;gt;&lt;br /&gt;
Once in the chroot jail, I've performed the following: '''''aptitude install --without-recommends lxde-core slim lxterminal zenity less xserver-xorg-video-omap3 network-manager-gnome synaptic xfce4-power-manager apmd libnotify-bin gedit epiphany-browser eject gksu gnome-bluetooth python-dbus ca-certificates xinput busybox''''' which will effectively pull in all the Debian specifics we'll be needing, gutting out a rather large amount of cruft.&lt;br /&gt;
&lt;br /&gt;
Once it's done, we'll start tackling the Drivers.&lt;br /&gt;
&lt;br /&gt;
=== Device Drivers and PNDs ===&lt;br /&gt;
We shall tackle these one at a time, as there's quite a few of them.&lt;br /&gt;
&lt;br /&gt;
* X Display Driver&lt;br /&gt;
* SGX Drivers&lt;br /&gt;
* Keymap&lt;br /&gt;
* Nubs&lt;br /&gt;
* Touchscreen&lt;br /&gt;
* Wifi&lt;br /&gt;
* Bluetooth&lt;br /&gt;
* Kernel and Misc Bits and Pieces&lt;br /&gt;
* PNDs&lt;br /&gt;
&lt;br /&gt;
==== X Display Driver ====&lt;br /&gt;
Debian has a NEON-optimised omapfb driver. We shall use this, and pinch some configuration gubbins from Angstrom.&lt;br /&gt;
&lt;br /&gt;
'''''apt-get install xserver-xorg-video-omap3'''''&lt;br /&gt;
&lt;br /&gt;
We now need to create an xorg.conf .. though it'll be rather minimal as we only really want to overload what graphics device setup it has, so:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''nano /etc/X11/xorg.conf'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
 Section &amp;quot;Module&amp;quot;&lt;br /&gt;
 	Load	&amp;quot;extmod&amp;quot;&lt;br /&gt;
 	Load	&amp;quot;dbe&amp;quot;&lt;br /&gt;
 	Disable	&amp;quot;glx&amp;quot;&lt;br /&gt;
 	Disable	&amp;quot;dri&amp;quot;&lt;br /&gt;
 	Load	&amp;quot;dri2&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
 &lt;br /&gt;
 Section &amp;quot;ServerLayout&amp;quot;&lt;br /&gt;
 	Identifier	&amp;quot;DefaultLayout&amp;quot;&lt;br /&gt;
 	Screen		&amp;quot;Screen0&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
 &lt;br /&gt;
 Section &amp;quot;Screen&amp;quot;&lt;br /&gt;
 	Identifier		&amp;quot;Screen0&amp;quot;&lt;br /&gt;
 	Device			&amp;quot;OMAPFB&amp;quot;&lt;br /&gt;
 	Monitor			&amp;quot;Monitor0&amp;quot;&lt;br /&gt;
 	DefaultDepth	16&lt;br /&gt;
 	SubSection &amp;quot;Display&amp;quot;&lt;br /&gt;
 		Depth	16&lt;br /&gt;
 		Modes	&amp;quot;800x480&amp;quot;&lt;br /&gt;
 	EndSubSection&lt;br /&gt;
 EndSection&lt;br /&gt;
 &lt;br /&gt;
 Section &amp;quot;Monitor&amp;quot;&lt;br /&gt;
 	Identifier		&amp;quot;Monitor0&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
 &lt;br /&gt;
 Section &amp;quot;Device&amp;quot;&lt;br /&gt;
 	Identifier		&amp;quot;OMAPFB&amp;quot;&lt;br /&gt;
 	Driver			&amp;quot;omapfb&amp;quot;&lt;br /&gt;
 	Option			&amp;quot;fb&amp;quot;		&amp;quot;/dev/fb0&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
Most of this is pinched from the Angstrom xorg.conf minus the fb Option at the bottom, as our framebuffer has a different device node.&lt;br /&gt;
&lt;br /&gt;
That should be all you need for basic X though.&lt;br /&gt;
&lt;br /&gt;
==== SGX Drivers ====&lt;br /&gt;
Most of this has been pinched from http://elinux.org/BeagleBoardDebian#SGX_Video_Acceleration - why rewrite the wheel?&amp;lt;br /&amp;gt;&lt;br /&gt;
This mostly works apart from a few caveats, so I shall repeat it here for future reference and to keep all information in one place, and I've uploaded the resulting tarballs for convenience.&lt;br /&gt;
&lt;br /&gt;
You can either follow the above guide - substituting the BeagleBoard for the Pandora, or use the following preconfigured packages.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''cd /tmp'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''wget -c http://www.stuckiegamez.co.uk/apps/pandora/Debian/GFX_4_00_00_01_libs.tar.gz''''' ~20MB Libraries themselves&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''wget -c http://www.stuckiegamez.co.uk/apps/pandora/Debian/GFX_Linux_SDK.tar.gz''''' ~220MB Demos and SDK gubbins&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Technically, you don't really need that fat 220MB GFX_Linux_SDK tarball unless you really want it, or want to test the libraries are in place.&amp;lt;br /&amp;gt;&lt;br /&gt;
I'll cover installing both anyway...&lt;br /&gt;
&lt;br /&gt;
===== Libraries =====&lt;br /&gt;
'''''tar -zxvf GFX_4_00_00_01_libs.tar.gz'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''chmod +x ./install-SGX.sh'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''./install-SGX.sh'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''rm /devmem2_0.0-0ubuntu1_armel.deb''''' - this is particularly useless to us... and why it dumps it at root, I don't know!&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That package contains ES2, ES3 and ES5 libraries.. we're only really interested in ES2 ( haven't tried if ES3 or ES5 would even work! ) so:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''cd /usr/lib'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''ln -s ES2.0/* .'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Not hugely clean, but it works. For the brave, you could try ES3 or ES5 but.. you're on your own!&lt;br /&gt;
&lt;br /&gt;
===== Demos/SDK =====&lt;br /&gt;
'''''cd /tmp'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''tar -zxvf OGLES.tar.gz'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''tar -zxvf OGLES2.tar.gz'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can't run anything yet ( well, you might since you've chrooted in via Angstrom ) so we'll leave them in /tmp for the moment - or move them elsewhere - such as /opt if you're worried about Debian wiping out /tmp on boot.&lt;br /&gt;
&lt;br /&gt;
==== Keymap ====&lt;br /&gt;
The keymap is actually stupidly easy, and I've missed how easy it is for quite a while now!&amp;lt;br /&amp;gt;&lt;br /&gt;
We shall steal them from Angstrom.. so open up another Terminal.&amp;lt;br /&amp;gt;&lt;br /&gt;
As of now, I shall prefix Angstrom commands with ''Angstrom'' and Debian commands with ''Debian'' so you know which Terminal to type them in.&lt;br /&gt;
&lt;br /&gt;
''Angstrom'' '''''sudo cp /etc/keymap-extension-2.6.map /media/mmcblk0p1/etc''''' - this does assume you've got your SD card mounted in slot one, and with one ext2 partition.. adjust as necessary.&amp;lt;br /&amp;gt;&lt;br /&gt;
''Angstrom'' '''''sudo cp /etc/skel/.pndXmodmap /media/mmcblk0p1/etc/skel''''' - as above.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After some fiddling, if you stick the following into ''.xsession'' it'll actually get called...&lt;br /&gt;
 whoami &amp;gt; /tmp/currentuser&lt;br /&gt;
 killall -1 pndnotifyd &amp;amp;&lt;br /&gt;
 exec startlxde&lt;br /&gt;
&lt;br /&gt;
Of course, this is a bit hacky and hard-coded in that if you've chosen something other than lxde, you'll probably want to change that startlxde to something else!&lt;br /&gt;
&lt;br /&gt;
1.0.2 does something really hacky and actually starts pndnotifyd and pndevmapperd as daemons directly.&amp;lt;br /&amp;gt;&lt;br /&gt;
It also starts up the xfce4-power-manager for a battery meter.&lt;br /&gt;
&lt;br /&gt;
1.0.3 does something else again.. it does not have the '''killall -1 pndnotifyd &amp;amp;''' line, instead it has the following:&lt;br /&gt;
 sudo /etc/init.d/pndnotifyd-init restart&lt;br /&gt;
 sudo /etc/init.d/pndevmapperd-init restart&lt;br /&gt;
And has edited /etc/sudoers.d/99_libpnd to add access to those two lines without being prompted for a password.&lt;br /&gt;
&lt;br /&gt;
1.0.4 is again different, and doesn't HUP pndnotifyd at all as it seemed to work without much issue just by starting the service differently, also, due to use of GDM, we do the xmodmap at GDM's startup instead in the following manner: &amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo nano /etc/gdm/Init/\:0''''' - the \ is needed to use : as a character!&amp;lt;br /&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 xinput set-int-prop &amp;quot;touchscreen&amp;quot; &amp;quot;Evdev Axis Calibration&amp;quot; 32 3936 125 3873 183&lt;br /&gt;
 xmodmap /etc/skel/.pndXmodmap&lt;br /&gt;
 loadkeys /etc/keymap-extension-2.6.map&lt;br /&gt;
&lt;br /&gt;
The xinput line is for the evdev touchscreen configuration, if this is wrong, please run '''xinput_calibrator''' from a Terminal, and replace the line with what it gives you!&lt;br /&gt;
&lt;br /&gt;
The loadkeys line also ensures that the console gets the correct keymap as well.&lt;br /&gt;
&lt;br /&gt;
Thanks to chris_c for the GDM init hint, and mcobit for the loadkeys hint!&lt;br /&gt;
&lt;br /&gt;
Should probably copy more over but, this'll do for now.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Nubs ====&lt;br /&gt;
The nubs just require some more config stuff to be copied over, and a few rc scripts to be setup right.&amp;lt;br /&amp;gt;&lt;br /&gt;
''Angstrom'' '''''sudo cp -R /etc/pandora /media/mmcblk0p1/etc'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
This also copies over configurations for the LCD backlight, some pmenu and mmenu stuff, and some PND configuration bits.&lt;br /&gt;
&lt;br /&gt;
''Angstrom'' '''''sudo cp /etc/init.d/pandora-state /media/mmcblk0p1/etc/init.d''''' - pandora-state restores nubs and backlight settings, as well as saves them on exit.&lt;br /&gt;
&lt;br /&gt;
Configuration utils come in with the PND installation below.&lt;br /&gt;
&lt;br /&gt;
==== Touchscreen ====&lt;br /&gt;
===== Current 1.0.2/3 Release =====&lt;br /&gt;
1.0.2 uses evdev instead of libts for the touchscreen. This doesn't really require any configuration for the most part, but does need to be calibrated.&amp;lt;br /&amp;gt;&lt;br /&gt;
You'll need a full dev setup on the Pandora for this, as you'll need to compile the xinput_calibrator - http://www.freedesktop.org/wiki/Software/xinput_calibrator however it's fairly trivial once all the libraries are installed.&lt;br /&gt;
&lt;br /&gt;
My values, which you should put into .xsession, are as follows: '''''xinput set-int-prop &amp;quot;touchscreen&amp;quot; &amp;quot;Evdev Axis Calibration&amp;quot; 32 3936 125 3873 183''''' and you'll need xinput installed ( which you should've done above if following the 1.0.3 path. )&lt;br /&gt;
&lt;br /&gt;
This is already done on 1.0.4 and xinput_calibrator is included should you need to re-run it.&lt;br /&gt;
&lt;br /&gt;
===== libts for other releases =====&lt;br /&gt;
''Debian'' '''''apt-get install libxcb-dri2-0 xserver-xorg-input-tslib libts-bin'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Debian'' '''''nano /etc/profile.d/tslib.sh'''''&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 TSLIB_TSDEVICE=/dev/input/event5&lt;br /&gt;
 TSLIB_CONFFILE=/etc/ts.conf&lt;br /&gt;
 export TSLIB_TSDEVICE TSLIB_CONFFILE&lt;br /&gt;
&lt;br /&gt;
We'll do the rest of it on First Boot.&amp;lt;br /&amp;gt;&lt;br /&gt;
This will be fixed properly when WiFi issues settle, so I can finalize a build system and re-do everything as packages - including libts with the OpenPandora-specific patches from the git.&lt;br /&gt;
&lt;br /&gt;
==== Wifi ====&lt;br /&gt;
Wifi is fun... most of it will come in the kernel and modules/firmware pack when we get to it, but there's some ancillary scripts and things that lay in wait to catch you off guard!&amp;lt;br /&amp;gt;&lt;br /&gt;
''Angstrom'' '''''sudo cp /etc/init.d/wl1251-init /media/mmcblk0p1/etc/init.d'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Angstrom'' '''''sudo cp /lib/udev/rules.d/50-compat_firmware.rules /media/mmcblk0p1/lib/udev/rules.d'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Angstrom'' '''''sudo cp /lib/udev/rules.d/compat_firmware.sh /media/mmcblk0p1/lib/udev/rules.d'''''&lt;br /&gt;
&lt;br /&gt;
The wl1251-init script uses busybox. While you could edit the script and remove the dependency on busybox, it's probably better to just install busybox if you haven't already, so that there are less changes to deal with - seeing as it's only about 600kB.&amp;lt;br /&amp;gt;&lt;br /&gt;
''Debian'' '''''apt-get install busybox'''''&lt;br /&gt;
&lt;br /&gt;
While we don't necessarily need Network Manager, it's a damn sight more easier to use than battering iwconfig et al from the Terminal:&amp;lt;br /&amp;gt;&lt;br /&gt;
''Debian'' '''''apt-get install network-manager-gnome'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
This'll take a long time as it pulls in quite a lot of stuff...&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth ====&lt;br /&gt;
Debian's bluetooth setup seems to kick in and work without issue.&amp;lt;br /&amp;gt;&lt;br /&gt;
Probably need to get a clean way to toggle it on and off - as it defaults to being on.&lt;br /&gt;
&lt;br /&gt;
==== Kernel and Misc Bits and Pieces ====&lt;br /&gt;
The kernel *should* be easy... grabbing a fresh set would've been advisable, but this doesn't seem to come with everything so we'll steal from our running system again.&lt;br /&gt;
&lt;br /&gt;
''Angstrom'' '''''sudo cp -R /lib/modules/2.6.27.46-omap1 /media/mmcblk0p1/lib/modules'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Angstrom'' '''''sudo cp -R /lib/firmware /media/mmcblk0p1/lib/firmare'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Angstrom'' '''''sudo cp /boot/uImage /media/mmcblk0p1/boot/uImage'''''&lt;br /&gt;
&lt;br /&gt;
==== Battery Monitor ====&lt;br /&gt;
You'll likely want to know how much battery power you have!&amp;lt;br /&amp;gt;&lt;br /&gt;
''Debian'' '''''apt-get install apmd'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Debian'' '''''apt-get install xfce4-power-manager'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
Somewhat cheeky perhaps, but it does work! [http://www.gp32x.com/board/index.php?/topic/57653-a-guide-to-installing-lxde/page__view__findpost__p__928896 see this post]&lt;br /&gt;
&lt;br /&gt;
If you add '''''xfce4-power-manager &amp;amp;''''' before '''''exec startlxde''''' in your .xsession, it'll start up automatically for you.&lt;br /&gt;
&lt;br /&gt;
==== Misc Init Scripts and Things ====&lt;br /&gt;
There are a few random init scripts we need for things:&amp;lt;br /&amp;gt;&lt;br /&gt;
''Angstrom'' '''''sudo cp /etc/init.d/led-config /media/mmcblk0p1/etc/init.d''''' - configure the LEDs properly.&amp;lt;br /&amp;gt;&lt;br /&gt;
''Angstrom'' '''''sudo cp /etc/init.d/usb-gadget /media/mmcblk0p1/etc/init.d''''' - for initializing the usb gadget device - g_cdc for USB networking, for instance.&amp;lt;br /&amp;gt;&lt;br /&gt;
''Angstrom'' '''''sudo cp /usr/bin/usb-gadget /media/mmcblk0p1/usr/bin'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Angstrom'' '''''sudo cp /etc/profile.d/op_env.sh /media/mmcblk0p1/etc/profile.d''''' - effectively just tells SDL to use tslib driver&amp;lt;br /&amp;gt;&lt;br /&gt;
''Angstrom'' '''''sudo cp /etc/default/leds /media/mmcblk0p1/etc/default'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Angstrom'' '''''sudo cp /etc/default/usb-gadget /media/mmcblk0p1/etc/default'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Angstrom'' '''''sudo cp /etc/skel/.asoundrc /media/mmcblk0p1/etc/skel'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And some more stuff to install in Debian:&amp;lt;br /&amp;gt;&lt;br /&gt;
''Debian'' '''''apt-get install libnotify-bin'''''&lt;br /&gt;
&lt;br /&gt;
==== PNDs ====&lt;br /&gt;
There are some init scripts you need for the PNDs to work. These are:&amp;lt;br /&amp;gt;&lt;br /&gt;
''Angstrom'' '''''sudo cp /etc/init.d/pndevmapperd-init /media/mmcblk0p1/etc/init.d'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Angstrom'' '''''sudo cp /etc/init.d/pndnotifyd-init /media/mmcblk0p1/etc/init.d'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Angstrom'' '''''sudo cp /usr/bin/pnd* /media/mmcblk0p1/usr/bin''''' - there are a few pnd binaries, these include pnd_info, pnd_run, pndevmapperd and pndnotifyd.&amp;lt;br /&amp;gt;&lt;br /&gt;
''Angstrom'' '''''sudo cp /usr/lib/libpnd.so.1.0.1 /media/mmcblk0p1/usr/lib''''' - obviously nothing'll work without the pnd libraries!&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are a bunch of scripts and PNDs hiding in /usr/pandora.. we may as well grab them over as well.&amp;lt;br /&amp;gt;&lt;br /&gt;
''Angstrom'' '''''sudo cp -R /usr/pandora /media/mmcblk0p1/usr'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We need to do a symlink to the library properly now, and clean up some stuff.&amp;lt;br /&amp;gt;&lt;br /&gt;
''Debian'' '''''ln -s /usr/lib/libpnd.so.1.0.1 /usr/lib/libpnd.so.1'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Debian'' '''''rm -rf /usr/pandora/mmenu''''' - these are just PNDs that call the programs installed in Angstrom from MiniMenu. We don't have these programs installed on Debian so, they're useless to us.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== RC Scripts ====&lt;br /&gt;
&lt;br /&gt;
We also need to disable some things from running.. the first run script specifies the following:&amp;lt;br /&amp;gt;&lt;br /&gt;
 update-rc.d -f samba remove&lt;br /&gt;
 update-rc.d -f xinetd remove&lt;br /&gt;
 update-rc.d -f avahi-daemon remove&lt;br /&gt;
 update-rc.d -f apmd remove&lt;br /&gt;
 update-rc.d -f usb-gadget remove&lt;br /&gt;
 update-rc.d -f banner remove&lt;br /&gt;
 update-rc.d -f portmap remove&lt;br /&gt;
 update-rc.d -f mountnfs remove&lt;br /&gt;
 update-rc.d -f blueprobe remove&lt;br /&gt;
 update-rc.d -f dropbear remove&lt;br /&gt;
 update-rc.d -f wl1251-init remove&lt;br /&gt;
&lt;br /&gt;
We'll also need to add some bits to the rc.d script set.&lt;br /&gt;
===== Script Fixups =====&lt;br /&gt;
We need to fiddle with a few of the scripts - specifically led-config to add the dummy LSB information ( just rip it out of another script, and leave Required-Start, Required-Stop, Default-Start and Default-Stop empty, ) and pndnotifyd-init, pndevmapperd-init and pandora-state where you need to blank out the #adjust marker as it causes Debian to have fits.&lt;br /&gt;
&lt;br /&gt;
If you don't do this, the nub settings won't save, for instance, and some system scripts are not guaranteed to start up.&amp;lt;br /&amp;gt;&lt;br /&gt;
The update-rc.d program will shout at you which ones, and essentially, it's just some tidying up that needs done.&lt;br /&gt;
&lt;br /&gt;
It's now recommended to use update-rc.d to put these in rather than the old heavy handed ln calls:&lt;br /&gt;
 update-rc.d led-config defaults 05&lt;br /&gt;
 update-rc.d pndevmapperd-init defaults 30 40&lt;br /&gt;
 update-rc.d pndnotifyd-init defaults 30 40&lt;br /&gt;
 update-rc.d pandora-state defaults 05&lt;br /&gt;
&lt;br /&gt;
The pandora-state is different on Angstrom than Debian as it didn't start up with it's usual bindings, which was annoying!&lt;br /&gt;
&lt;br /&gt;
=== Users and Permissions ===&lt;br /&gt;
You may be wondering why Users haven't been done till the very end.. we've edited the /etc/skel setup which will be used to create your user details.&lt;br /&gt;
&lt;br /&gt;
If you have already jumped the gun and created a user previously, all changes we've done to /etc/skel will need to be mirrored in your home folder!&lt;br /&gt;
&lt;br /&gt;
''Debian'' ''''''adduser &amp;lt;username&amp;gt;''''' - obviously, replace &amp;lt;username&amp;gt; with what you want; for example ''adduser pandora''.&lt;br /&gt;
&lt;br /&gt;
One interesting thing I've noticed happens, is sometimes it'll happily create your user... then not give you full permissions to your own folder.. so let's beat it a bit.&amp;lt;br /&amp;gt;&lt;br /&gt;
''Debian'' '''''chown -R &amp;lt;username&amp;gt;:&amp;lt;username&amp;gt; /home/&amp;lt;username&amp;gt;''''' - replacing &amp;lt;username&amp;gt; with your actual username; for example ''chown pandora:pandora /home/pandora''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You'll probably want to use sudo, which will require you to be in the wheel group, which we are about to create:&amp;lt;br /&amp;gt;&lt;br /&gt;
''Debian'' '''''groupadd wheel'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
There's also few groups you'd want to be in, so we'll do that now.&amp;lt;br /&amp;gt;&lt;br /&gt;
''Debian'' '''''usermod -a -G wheel &amp;lt;username&amp;gt;''''' - you know the drill now... example; ''usermod -a -G wheel pandora''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Debian'' '''''usermod -a -G adm &amp;lt;username&amp;gt;'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Debian'' '''''usermod -a -G audio &amp;lt;username&amp;gt;'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Debian'' '''''usermod -a -G video &amp;lt;username&amp;gt;'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Debian'' '''''usermod -a -G plugdev &amp;lt;username&amp;gt;'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Debian'' '''''usermod -a -G users &amp;lt;username&amp;gt;'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Debian'' '''''usermod -a -G netdev &amp;lt;username&amp;gt;'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Technically, you could've done all this in the one line with adduser, but I'd rather keep it all separate so that if we end up with extra groups, we all know how to add them.&lt;br /&gt;
&lt;br /&gt;
You'll also need to do the above for every new user you create for the moment.&lt;br /&gt;
&lt;br /&gt;
There's a bunch of sudoers rules that are hidden as well that we need to steal ( I completely missed these twice - my thanks to sebt3 and DJWillis for pointing me to them! I thought the #includedir line was commented out due to the # ... *facepalm* )&amp;lt;br /&amp;gt;&lt;br /&gt;
''Angstrom'' '''''sudo cp /etc/sudoers.d/* /media/mmcblk0p1/etc/sudoers.d/'''''&lt;br /&gt;
&lt;br /&gt;
Finally, /tmp can sometimes go mad so we shall fix that just now too.&amp;lt;br /&amp;gt;&lt;br /&gt;
''Debian'' '''''chmod a+w /tmp'''''&lt;br /&gt;
&lt;br /&gt;
=== Reboot and Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
==== auto/boot.txt ====&lt;br /&gt;
We need either an autoboot.txt or a boot.txt now or we won't be able to boot up Debian.&amp;lt;br /&amp;gt;&lt;br /&gt;
There's no difference between either, other than autoboot will cause the Pandora to automatically boot from SD if it finds it, whereas boot requires holding the right shoulder button as usual.&amp;lt;br /&amp;gt;&lt;br /&gt;
''Debian'' '''''nano /autoboot.txt''''' - again, you could use boot.txt instead and press the right shoulder button during boot.&amp;lt;br /&amp;gt;&lt;br /&gt;
 setenv bootargs root=/dev/mmcblk0p1 rw rootwait vram=6272K omapfb.vram=0:3000K mmc_core.removable=0&lt;br /&gt;
 ext2load mmc 0:1 0x80300000 /boot/uImage&lt;br /&gt;
 bootm 0x80300000&lt;br /&gt;
&lt;br /&gt;
All that's really left now is to reboot and catch any issues that may crop up!&lt;br /&gt;
&lt;br /&gt;
==== First Boot ====&lt;br /&gt;
&lt;br /&gt;
===== tslib calibration =====&lt;br /&gt;
First Boot should bring you up to GDM in all it's splendour. But Wait! The touchscreen! IT IS MADNESS!&amp;lt;br /&amp;gt;&lt;br /&gt;
If you've a USB keyboard, you can be one step ahead and do CTRL+ALT+F1 to jump to a terminal, but we're going to assume just the Pandora so we'll carry on and login.&lt;br /&gt;
&lt;br /&gt;
Once LXDE has finished loading up, press FN+ALT+F2 and type &amp;quot;lxterminal&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo su'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''export  TSLIB_TSDEVICE=/dev/input/event5'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''export TSLIB_CONFFILE=/etc/ts.conf'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''ts_calibrate'''''&lt;br /&gt;
&lt;br /&gt;
Touchscreen should behave itself now.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Finish up installing any left overs =====&lt;br /&gt;
While root ( that's what sudo su does ) we shall finish setting up anything that didn't take during our chroot session in Angstrom ( bluetooth usually )&amp;lt;br/&amp;gt;&lt;br /&gt;
'''''apt-get -f install'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''exit''''' - jump back to our user so we don't accidentally mess things up&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Cleanup ====&lt;br /&gt;
Potential clean-ups that should occur is packaging up the Pandora specific libraries and scripts into .deb files for maintenance purposes if nothing else. We can then either try and get them fed back into Debian, or provide our own Debian repo for Pandora.&lt;br /&gt;
&lt;br /&gt;
The following should probably be stuffed into deb files for easier maintainability:&amp;lt;br /&amp;gt;&lt;br /&gt;
* libpnd&lt;br /&gt;
* pandora specific scripts&lt;br /&gt;
* SGX drivers&lt;br /&gt;
* kernel&lt;br /&gt;
* modules and firmware&lt;br /&gt;
&lt;br /&gt;
== Maintenance and Upgrades ==&lt;br /&gt;
Maintenance on Debian is very easy.. it's just a case of running '''''sudo apt-get update &amp;amp;&amp;amp; sudo apt-get upgrade''''' from a console, or using Synaptic ( see below on how to install if your rootfs didn't have it. )&lt;br /&gt;
&lt;br /&gt;
== Common Issues/Fun Things To Do ==&lt;br /&gt;
There's a wealth of power at your fingertips with Debian, so place your fun things to do here!&amp;lt;br /&amp;gt;&lt;br /&gt;
Also, sometimes there are odd issues, so if you fix something odd, place it here too.&lt;br /&gt;
&lt;br /&gt;
=== Networking ===&lt;br /&gt;
Networking should work effectively the same as on Angstrom, but here's a run down of what to do anyway:&lt;br /&gt;
* Click the LXDE menu up.&lt;br /&gt;
* Click System Tools -&amp;gt; Toggle Wifi&lt;br /&gt;
* Click the Network Manager app between the process bar and the clock.&lt;br /&gt;
* Click your network - or select &amp;quot;Connect to Hidden Wireless Network&amp;quot; if it's not there and fill out the details.&lt;br /&gt;
* Fill out the keyring for your passwords to go into - so you only need to remember the one ;)&lt;br /&gt;
* The Network Manager icon should spin and then give you a strength bar as normal once connected.&lt;br /&gt;
&lt;br /&gt;
=== Synaptic ===&lt;br /&gt;
The 1.0.1 release did not include Synaptic.. it's back in 1.0.2 and 1.0.3&amp;lt;br /&amp;gt;&lt;br /&gt;
To get it back for the 1.0.1 release, it's simply a case of doing:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo apt-get update''''' - if you haven't done so for a while ( as in, days, not hours )&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo apt-get install synaptic'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
Then wait for a while as it downloads and installs.&lt;br /&gt;
&lt;br /&gt;
You'll find Synaptic under System Tools once it's done.&lt;br /&gt;
&lt;br /&gt;
=== My PNDs don't work, why?! ===&lt;br /&gt;
Generally, it'll be because of library differences.. I'm still trying to figure out the best way to deal with this, but you've got the Debian armel repository at your disposal, so you should be fine for a while!&lt;br /&gt;
&lt;br /&gt;
1.0.2 has some library compatibility with Pandora Angstrom but it's not complete. The PNDs of Wesnoth and BattleJewels will work for example, whereas SuperTux and GravityForce do not.&lt;br /&gt;
&lt;br /&gt;
Library compatibility was achieved by pulling packages manually from older revisions, symlinking some libraries and pulling stuff from experimental.. it was trial and error so, is a tad iffy.&lt;br /&gt;
&lt;br /&gt;
1.0.3 and 1.0.4 do not have library compatibility as it caused extra issues in 1.0.2, you'll need to either wait for 1.1 or pull in the needed libraries yourself.&lt;br /&gt;
&lt;br /&gt;
=== Wifi and Session Management is broken?! ===&lt;br /&gt;
Pre-1.0.3 there was an issue with this.. it should now be fixed in 1.0.3 so if you don't want to update, perform the following:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo rm -f /etc/udev/rules.d/70-persistent-net.rules'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo chmod +x /usr/lib/dbus-1.0/dbus-daemon-launch-helper'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
and reboot.. everything should now work properly.&lt;br /&gt;
&lt;br /&gt;
=== My PNDs don't appear immediately? ===&lt;br /&gt;
This is an odd one.. by rights they should.. and I also don't quite understand why pndnotifyd kicks in when you open a terminal, but it does.&lt;br /&gt;
&lt;br /&gt;
Therefore, if you haven't done so already, open up a terminal and then close it.. pndnotifyd then starts up and takes care of all the PND stuff for you.&lt;br /&gt;
&lt;br /&gt;
This should be fixed in 1.0.4&lt;br /&gt;
&lt;br /&gt;
=== I get no notifications in 1.0.3 ===&lt;br /&gt;
This is actually because notification-daemon hasn't been installed.&lt;br /&gt;
&lt;br /&gt;
=== Packages to add in 1.1! ===&lt;br /&gt;
Feel free to add packages here that I should include in the next release (1.1)&lt;br /&gt;
* wireless-tools&lt;br /&gt;
* x11-xserver-utils ( I keep forgetting this.. it's for xmodmap )&lt;br /&gt;
* xinput - for evdev's configuration&lt;br /&gt;
* console-tools - for chvt&lt;br /&gt;
* xterm - for failsafe console&lt;br /&gt;
* bash-completion - tis handy to have&lt;br /&gt;
* aptitude - somehow I forgot this.&lt;br /&gt;
&lt;br /&gt;
= Emdebian Grip =&lt;br /&gt;
Most of the above can be taken for Grip, with the following changes...&lt;br /&gt;
&lt;br /&gt;
Why Grip? It's much smaller and targeted for embedded devices... I originally was going to use Grip actually, but it was a bit buggered at the time, though it seems to be working now.&amp;lt;br /&amp;gt;&lt;br /&gt;
Additionally, Emdebian comes in Crush and Baked flavours... Grip is compatible with Desktop Debian, so we'll use that.. Crush is smaller again, and generally requires a cross-compiler to setup packages, and Baked is effectively what we do with Angstrom.&lt;br /&gt;
&lt;br /&gt;
Emdebian could also in theory be shrunk enough to actually fit on NAND... which is something I'll be looking into - if only to document another alternative process to the Angstrom OE bitbake bonanza.&lt;br /&gt;
&lt;br /&gt;
== Multistrap ==&lt;br /&gt;
Grip's debootstrap is slightly different... it uses multistrap instead.&lt;br /&gt;
&lt;br /&gt;
This allows us to use Grip's repository as the base, and Desktop Debian's repositories for anything else we might need ( omap3 drivers, for instance. ) This is also particularly useful for us when I get around to doing Pandora specifics compiled for Debian, as then we just add that repository as well.&lt;br /&gt;
&lt;br /&gt;
Anyway, we need Debian running for this - be it on your Desktop ( or Ubuntu ) or on your Pandora ( recommended, as this guide assumes this is what you're doing. )&amp;lt;br /&amp;gt;&lt;br /&gt;
Install Multistrap - '''''sudo apt-get install multistrap'''''&lt;br /&gt;
&lt;br /&gt;
You'll also need to mount an SD card somewhere manually.. I've mounted mine to /tmp/emdebian: '''''sudo umount /dev/mmcblk1p1 &amp;amp;&amp;amp; mount /dev/mmcblk1p1 /tmp/emdebian'''''&lt;br /&gt;
&lt;br /&gt;
=== Config File ===&lt;br /&gt;
'''''nano multistrap'''''&lt;br /&gt;
 [General]&lt;br /&gt;
 arch=armel&lt;br /&gt;
 directory=/tmp/emdebian&lt;br /&gt;
 cleanup=true&lt;br /&gt;
 noauth=false&lt;br /&gt;
 unpack=true&lt;br /&gt;
 aptsources=Grip Debian&lt;br /&gt;
 debootstrap=Grip Debian&lt;br /&gt;
 &lt;br /&gt;
 [Debian]&lt;br /&gt;
 packages=&lt;br /&gt;
 source=ftp://ftp.uk.debian.org/debian&lt;br /&gt;
 keyring=debian-archive-keyring&lt;br /&gt;
 suite=squeeze&lt;br /&gt;
 &lt;br /&gt;
 [Grip]&lt;br /&gt;
 packages=&lt;br /&gt;
 keyring=emdebian-archive-keyring&lt;br /&gt;
 source=http://www.emdebian.org/grip&lt;br /&gt;
 suite=squeeze&lt;br /&gt;
&lt;br /&gt;
'''''sudo multistrap -f multistrap'''''&lt;br /&gt;
&lt;br /&gt;
Change /tmp/multistrap to where ever you want the debootstrap to occur.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Gotcha''''' I had issues with it complaining about unauthenticated packages, just add '''--no-auth''' to your command line and it'll continue happily.''&lt;br /&gt;
&lt;br /&gt;
This shouldn't take too long ( was about half an hour on my Pandora ) and gives you a very sparse minimal rootfs of 192Mb.&lt;br /&gt;
&lt;br /&gt;
The following multistrap config will give you what's in the 1.0.4 Grip rootfs&lt;br /&gt;
 [General]&lt;br /&gt;
 arch=armel&lt;br /&gt;
 directory=/tmp/emdebian&lt;br /&gt;
 cleanup=true&lt;br /&gt;
 noauth=false&lt;br /&gt;
 unpack=true&lt;br /&gt;
 aptsources=Grip Debian&lt;br /&gt;
 debootstrap=Grip Debian&lt;br /&gt;
 &lt;br /&gt;
 [Debian]&lt;br /&gt;
 packages=xserver-xorg-video-omap3 libxcb-dri2-0 libnotify-bin xinput&lt;br /&gt;
 source=ftp://ftp.uk.debian.org/debian&lt;br /&gt;
 keyring=debian-archive-keyring&lt;br /&gt;
 suite=squeeze&lt;br /&gt;
 &lt;br /&gt;
 [Grip]&lt;br /&gt;
 packages=lxde busybox network-manager-gnome xfce4-power-manager apmd gdm less sudo nano wireless-tools iceweasel synaptic gnome-mplayer x11-xserver-utils notification-daemon gnome-keyring&lt;br /&gt;
 keyring=emdebian-archive-keyring&lt;br /&gt;
 source=http://www.emdebian.org/grip&lt;br /&gt;
 suite=squeeze&lt;br /&gt;
&lt;br /&gt;
You could also add packages into the Grip and Debian configuration parts, and it will automatically pull them down and install them for you, be careful with what you pull in though, as not everything has been repackaged for Grip, so it will pull down the &amp;quot;full fat&amp;quot; variants from Debian instead.&lt;br /&gt;
&lt;br /&gt;
You might get errors of unconfigured packages, just chroot in and run '''''apt-get -f install''''' to finish up.. if there are warnings about proc, ignore them till you reboot into the rootfs and re-run '''''sudo apt-get -f install'''''.&lt;br /&gt;
&lt;br /&gt;
== Chroot and Setup ==&lt;br /&gt;
Now we can just chroot in and setup as we see fit.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo chroot /tmp/emdebian''''' - again, you may have mounted your media elsewhere.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo apt-get update'''''&lt;br /&gt;
&lt;br /&gt;
You can now just follow the Debian guide as above, with the added bonus of most packages will come from Grip and be pre-stripped of extra fluff.&amp;lt;br /&amp;gt;&lt;br /&gt;
I would recommend to get as much stuff as possible downloaded in the initial multistrap however, as it will automatically clean stuff up for you.&lt;br /&gt;
&lt;br /&gt;
= Debian On NAND =&lt;br /&gt;
First of all, &amp;lt;br /&amp;gt;&lt;br /&gt;
'''''WARNING: DO NOT ATTEMPT THIS.'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''NO, SERIOUSLY, DON'T! THIS IS UTTERLY HACKY AND IT IS ON YOUR OWN HEAD IF YOU MESS UP.'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Get a Debian Rootfs ==&lt;br /&gt;
Your NAND has about 475Mb for the rootfs to play with ( there are other partitions, remember! ), therefore Desktop Debian is a bit too large for our purposes - even 1.0.3's complete massacre still ended up too big by far; so we need to look at Emdebian, of which there are three flavours - grip, crush and baked.&amp;lt;br /&amp;gt;&lt;br /&gt;
We'll be using Grip, so follow the guide above for at least getting a working system on SD before going anywhere near your NAND.&lt;br /&gt;
&lt;br /&gt;
We can use compression to get your rootfs down by 40-50%, but I'd still be vary wary of a large rootfs!&lt;br /&gt;
&lt;br /&gt;
If you're lazy, grab my pre-made Grip rootfs, which includes LXDE by default.&lt;br /&gt;
&lt;br /&gt;
== Preparing the Rootfs ==&lt;br /&gt;
Boot into your rootfs for this, so we can ensure we're as up to date as we can be, then clean the apt cache, and then any crap we installed which we don't need any more, such as things which were installed as dependencies and the parent's been removed.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo apt-get update'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo apt-get upgrade'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo apt-get clean'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo apt-get autoclean'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Additionally, you could wipe out the documentation ( if any ) and manually pull out unwanted packages. However, if you're pulling stuff out, you shouldn't have installed it in the first place! Go back to the start and do it again as punishment!&lt;br /&gt;
&lt;br /&gt;
This post on the Ubuntu forums is particularly helpful: http://ubuntuforums.org/showthread.php?t=140920&lt;br /&gt;
&lt;br /&gt;
Depending on your needs, you may also want to wipe out your home folder and reinstate it from /etc/skel&amp;lt;br /&amp;gt;&lt;br /&gt;
You'll also want to wipe out tmp - '''''sudo rm -rf /tmp/*'''''&lt;br /&gt;
&lt;br /&gt;
Now shut down and either place your SD card in your PC. You can do this on Pandora, but you will need a lot of space.&lt;br /&gt;
&lt;br /&gt;
Copy your rootfs somewhere.. I suggest /tmp/pandora-debian&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''mkdir /tmp/pandora-debian'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo cp -p -r /media/my/sd/card/* /tmp/pandora-debian''''' - this will preserve Permissions and copy everything Recursively.&lt;br /&gt;
&lt;br /&gt;
We need to edit the fstab so that it can boot properly, if you haven't done so already.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo nano /tmp/pandora-debian/etc/fstab'''''&lt;br /&gt;
 # OpenPandora fstab.&lt;br /&gt;
 &lt;br /&gt;
 rootfs               /                    auto       defaults,noatime      1  1&lt;br /&gt;
 proc                 /proc                proc       defaults              0  0&lt;br /&gt;
 devpts               /dev/pts             devpts     mode=0620,gid=5       0  0&lt;br /&gt;
 usbfs                /proc/bus/usb        usbfs      defaults              0  0&lt;br /&gt;
 tmpfs                /var/volatile        tmpfs      defaults              0  0&lt;br /&gt;
 tmpfs                /dev/shm             tmpfs      mode=0777             0  0&lt;br /&gt;
 tmpfs                /media/ram           tmpfs      defaults              0  0&lt;br /&gt;
&lt;br /&gt;
This should look familiar, as it's effectively your stock fstab minus the boot partition ( we have a kernel in our rootfs, if you've followed the above guides... )&lt;br /&gt;
&lt;br /&gt;
We should also get rid of the autoboot.txt or boot.txt; '''''sudo rm /tmp/pandora-debian/autoboot.txt'''''&lt;br /&gt;
&lt;br /&gt;
== Creating the Image ==&lt;br /&gt;
You need mtd-utils in your Debian distro of choice. '''''sudo apt-get install mtd-utils'''''&lt;br /&gt;
&lt;br /&gt;
Now, mkfs.ubifs can compress using either LZO ( by default ) or zlib and will get your rootfs about 40-50% smaller depending on what you choose. It's also possible to use a combination of both, which is what we will do later.. Of course, if your rootfs is full of pre-compressed stuff already, it's not really going to shrink a great deal.&amp;lt;br /&amp;gt;&lt;br /&gt;
For a full run down on mkfs.ubifs and co, see here: http://www.linux-mtd.infradead.org/doc/ubifs.html&lt;br /&gt;
&lt;br /&gt;
Download the flash kit: http://openpandora.org/firmware/pandora-flash-kit.zip and extract it to /tmp/flash. I suggest reading the README as well.&lt;br /&gt;
&lt;br /&gt;
Now run these fun commands... what we're doing is we're making a ubifs image first, then making an md5 checksum.&amp;lt;br /&amp;gt;&lt;br /&gt;
We're also favoring LZO compression meaning we're mixing zlib and LZO to get the best compression we can.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo mkfs.ubifs -r /tmp/pandora-debian -o rootfs.img -m 2048 -e 129024 -c 4042 -x favor_lzo -X 20'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''md5sum rootfs.img &amp;gt; rootfs.md5'''''&lt;br /&gt;
&lt;br /&gt;
'''STOP! If your rootfs.img is getting close to 480Mb, you might not want to try and flash it.. it may be fine, but I would recommend 450Mb as an absolute maximum.'''&lt;br /&gt;
&lt;br /&gt;
== Flashing the Image ==&lt;br /&gt;
I shall repeat:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''WARNING: DO NOT ATTEMPT THIS.'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''NO, SERIOUSLY, DON'T! THIS IS UTTERLY HACKY AND IT IS ON YOUR OWN HEAD IF YOU MESS UP.'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Stick the following on to a FAT32 formatted SD card:&amp;lt;br /&amp;gt;&lt;br /&gt;
* '''boot.scr''' - from the flash kit.&lt;br /&gt;
* '''rootfs.img''' - the image you've just created.&lt;br /&gt;
* '''rootfs.md5''' - the checksum to the image.&lt;br /&gt;
&lt;br /&gt;
Place it in slot 1 of your Pandora ( the left slot, ) reboot while holding the right trigger, select boot from SD, cross your fingers and pray to the Pandora Gods.&lt;br /&gt;
&lt;br /&gt;
Once it's done.. reboot and see what mess you've made, assuming you get it to boot!&amp;lt;br /&amp;gt;&lt;br /&gt;
If you haven't got it to boot, on your FAT32 flasher card, add an autoboot.txt with the following:&lt;br /&gt;
 setenv bootargs ubi.mtd=4 ubi.mtd=3 root=ubi0:rootfs rootfstype=ubifs rw vram=6272K omapfb.vram=0:3000K&lt;br /&gt;
 ubi part boot &amp;amp;&amp;amp; ubifsmount boot &amp;amp;&amp;amp; ubifsload ${loadaddr} uImage &amp;amp;&amp;amp; bootm ${loadaddr};&lt;br /&gt;
&lt;br /&gt;
As this will let you see what's gone wrong... I had to do this a few times, as I buggered it up myself...&lt;br /&gt;
&lt;br /&gt;
Congratulations, you now have Debian on NAND rather than Angstrom.&amp;lt;br /&amp;gt;&lt;br /&gt;
Also, these instructions could easily be adapted to allow you to use any other distro that boots on Pandora.&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Operating system]]&lt;br /&gt;
[[Category:Storage card]]&lt;br /&gt;
[[Category:Booting]]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Debian_On_SD&amp;diff=10285</id>
		<title>Debian On SD</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Debian_On_SD&amp;diff=10285"/>
		<updated>2012-05-05T13:31:53Z</updated>

		<summary type="html">&lt;p&gt;Notaz: remove ttyS0, breaks new kernel&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Debian On SD =&lt;br /&gt;
&lt;br /&gt;
I'm going to split this into three chunks now... standard Desktop Debian on SD using Squeeze/Lenny/Sid ( choose your poison, though only Squeeze is officially tested to work by myself, ) Emdebian GRIP install, and NAND install.&lt;br /&gt;
&lt;br /&gt;
You can post feedback, bugs, etc.. on the following topics:&lt;br /&gt;
GP32X: http://www.gp32x.com/board/index.php?/topic/57097-debian-on-an-sd-card/&lt;br /&gt;
OpenPandora Boards: http://boards.openpandora.org/index.php?/topic/1819-debian-on-sd/&lt;br /&gt;
&lt;br /&gt;
I'd prefer the GP32X boards as I'm slightly more active there.&lt;br /&gt;
&lt;br /&gt;
= Little Note to Wiki Editors =&lt;br /&gt;
I change this a lot offline and then plaster the changes on during a new release.&amp;lt;br /&amp;gt;&lt;br /&gt;
If you're going to go changing this page, please contact me first so I don't accidentally obliterate your changes, or that you do changes to the style I've set out that I don't agree with!&amp;lt;br /&amp;gt;&lt;br /&gt;
This may well be against the &amp;quot;wiki spirit&amp;quot; .. but I spend days/weeks typing up these changes and testing them.. so a little consideration please :)&lt;br /&gt;
&lt;br /&gt;
== Desktop Debian ==&lt;br /&gt;
This is split into three main sections - Building from Scratch, Maintenance and Upgrades, Common Things To Do.&lt;br /&gt;
&lt;br /&gt;
''' This documents the final 1.0.3 and 1.0.4 &amp;quot;brute force&amp;quot; releases. The 1.1 &amp;quot;debianized&amp;quot; release will take a while and not involve this process at all. '''&lt;br /&gt;
&lt;br /&gt;
* Building From Scratch lets you customise everything from the outset, and lets you create your very own tailor-made distribution, rather than a pre-created one.&lt;br /&gt;
It does require a bit of Linux knowledge before diving in.. so if unsure, ask!&lt;br /&gt;
&lt;br /&gt;
* Maintenance and Upgrades covers standard Debian maintenance if you're not usually a Debian user.&lt;br /&gt;
It'll also ( in the future ) cover how to upgrade your pre-built distribution with new drivers as the official OS gets updated.&lt;br /&gt;
&lt;br /&gt;
* Common/Fun Things To Do will give you ideas on what to try in your new Debian installation. &lt;br /&gt;
Remember, this is a full desktop OS you now have squeezed into your hands, and feel free to share your cool ideas!&lt;br /&gt;
&lt;br /&gt;
If you don't want to build from scratch, you have two choices;&lt;br /&gt;
* Grab a Minimal Install and continue from [http://pandorawiki.org/index.php?title=Debian_On_SD#Desktop_Environment Desktop Environment]&lt;br /&gt;
* Grab a full build.&lt;br /&gt;
&lt;br /&gt;
The latest minimal is available here: http://www.stuckiegamez.co.uk/apps/pandora/Debian/pandora-squeeze-minimal-1.0.2.tar.bz2 &amp;lt;br /&amp;gt;&lt;br /&gt;
The latest full builds are: &lt;br /&gt;
* LXDE - http://www.stuckiegamez.co.uk/apps/pandora/Debian/pandora-squeeze-1.0.4-grip.tar.bz2&lt;br /&gt;
* XFCE - http://www.stuckiegamez.co.uk/apps/pandora/Debian/pandora-squeeze-1.0.5-grip.tar.bz2&lt;br /&gt;
&lt;br /&gt;
Remember to untar with permissions ( include '''p''' in your arguments to tar ) on to your ext2/3 formatted SD card.&amp;lt;br /&amp;gt;&lt;br /&gt;
For example: '''''tar -xvjpf pandora-squeeze*.tar.bz2 -C /media/sdcard .'''''&lt;br /&gt;
&lt;br /&gt;
Default User details are:&amp;lt;br /&amp;gt;&lt;br /&gt;
username: '''pandora'''&amp;lt;br /&amp;gt;&lt;br /&gt;
password: '''debian'''&lt;br /&gt;
&lt;br /&gt;
=== Changelog ===&lt;br /&gt;
==== Original Proof of Concept ====&lt;br /&gt;
* Released - 19th October 2010&lt;br /&gt;
* Based on Sid&lt;br /&gt;
* GDM&lt;br /&gt;
* GNOME&lt;br /&gt;
* Bit slow but workable&lt;br /&gt;
&lt;br /&gt;
==== Release 1.0 ====&lt;br /&gt;
* Released - 20th February 2011&lt;br /&gt;
* First release&lt;br /&gt;
* libts issues&lt;br /&gt;
* libpnd issues&lt;br /&gt;
* Overly fat with stuff&lt;br /&gt;
* Wifi issues for some people&lt;br /&gt;
&lt;br /&gt;
==== Release 1.0.1 ====&lt;br /&gt;
* Released - 23rd February 2011&lt;br /&gt;
* First documented release&lt;br /&gt;
* libts issues persist&lt;br /&gt;
* Most libpnd issues fixed&lt;br /&gt;
* Slimmed down to ~830mb&lt;br /&gt;
* Made Wifi issues worse and accidentally stripped out more than needed&lt;br /&gt;
&lt;br /&gt;
==== Release 1.0.2 ====&lt;br /&gt;
* Released - 22nd March 2011&lt;br /&gt;
* Replaced libts with evdev... doesn't cause X choking.&lt;br /&gt;
* libpnd should behave now, though the pnd services don't seem to get kicked till a terminal is opened, and even then they turn zombie.. eh?&lt;br /&gt;
* Added full dev setup.. so it's fat.. it's 1.2gig extracted.&lt;br /&gt;
* Replaced GDM with SLIM.&lt;br /&gt;
&lt;br /&gt;
==== Release 1.0.3 ====&lt;br /&gt;
* Released - 27th March 2011&lt;br /&gt;
* Effectively 1.0.2 with the WiFi and Session Management bug fixed.&lt;br /&gt;
* Much slimmer as it's done from scratch again without the dev setup ~805mb rootfs&lt;br /&gt;
&lt;br /&gt;
==== Release 1.0.4 ====&lt;br /&gt;
* Released - 4th April 2011&lt;br /&gt;
* 1.0.3 with lots of bugs fixed and based on Grip so it's got even more and super tiny in comparision.&lt;br /&gt;
* Contains; LXDE, GDM, Gnome MPlayer, IceWeasel ( firefox ) and Synaptic&lt;br /&gt;
&lt;br /&gt;
==== Release 1.0.5 ====&lt;br /&gt;
* Released - 9th April 2011&lt;br /&gt;
* 1.0.4 with XFCE instead of LXDE and a few bug fixes ( pandora-state's rc scripts being set correctly, and console key map .. see the relevant bits below if you need them, but other than that, it's exactly the same - just with XFCE instead of LXDE )&lt;br /&gt;
&lt;br /&gt;
=== Release 1.1 Proposed ===&lt;br /&gt;
* Expected - May 2011 ( maybe )&lt;br /&gt;
* libts, amongst other libraries, using OpenPandora patched version.&lt;br /&gt;
* Pandora specifics wrapped as Debian archives.&lt;br /&gt;
* Pandora specifics repo to deal with updates to drivers from mainline.&lt;br /&gt;
* Perhaps an updated kernel using the patches from mainline.&lt;br /&gt;
&lt;br /&gt;
== Building From Scratch ==&lt;br /&gt;
This isn't for the feint of heart.. if you don't understand something - stop! Ask or read up on it before continuing. While I haven't mangled my Pandora or PC in any way from doing this, it's still possible to make a mess, so be careful!&lt;br /&gt;
&lt;br /&gt;
This is split into many parts.. it's advised to go through this in order.&lt;br /&gt;
&lt;br /&gt;
* Getting a Minimal Install from Scratch&lt;br /&gt;
* Desktop Environment&lt;br /&gt;
* Device Drivers and PNDs&lt;br /&gt;
* Users, First Boot Scripts and Permissions&lt;br /&gt;
* Reboot and Troubleshooting&lt;br /&gt;
&lt;br /&gt;
=== Getting a Minimal Install from Scratch ===&lt;br /&gt;
&lt;br /&gt;
There are two options here:&lt;br /&gt;
* Linux PC&lt;br /&gt;
* On Pandora&lt;br /&gt;
&lt;br /&gt;
==== Linux PC ====&lt;br /&gt;
On a Linux PC, run debootstrap to grab the version you want. We shall be using Squeeze today:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo debootstrap --arch armel --foreign squeeze /tmp/pandora-debian ftp://ftp.uk.debian.org/debian'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
Grab a large SD card, and repartition it to have one large ext2/ext3 partition and format as normal.&amp;lt;br /&amp;gt;&lt;br /&gt;
Copy all the files from /tmp/pandora-debian over to your new SD card partition.&amp;lt;br /&amp;gt;&lt;br /&gt;
Put it in your Pandora.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo chroot /media/mmcblk0p1''''' -- assuming it's in your first slot.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''/debootstrap/deboostrap --second-stage'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
... this takes a while...&lt;br /&gt;
&lt;br /&gt;
==== Pandora ====&lt;br /&gt;
Alternatively, you can run cdebootstrap on the Pandora itself, or debootstrap from within Debian... this bypasses the need of doing the second-stage madness.&amp;lt;br /&amp;gt;&lt;br /&gt;
Grab it from here: http://packages.debian.org/sid/cdebootstrap-static and select the armel package.&amp;lt;br /&amp;gt;&lt;br /&gt;
Download it to /tmp preferably, but your home folder will do, or anywhere you like. For now, I shall assume you downloaded it to /tmp&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''cd /tmp'''''  -- Again, if you downloaded elsewhere, change to that directory instead.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''ar xv cdebootstrap*.deb''''' -- We're using the archive tool to extract with verbosity our cdebootstrap package. &amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo tar -zxvf data.tar.gz -C /'''''  -- Now we're using tar to extract, with gzip support, again with verbosity, the file data.tar.gz, changing the Current directory to / so that it extracts systemwide on our NAND. We're running this command sudo so we have write permissions.&amp;lt;br /&amp;gt;&lt;br /&gt;
Now we just run cdebootstrap-static with a few parameters, and wait.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''cdebootstrap-static --allow-unauthenticated -f minimal squeeze /media/mmcblk1p1''''' -- What we're doing here, is we're allowing &amp;quot;unauthenticated&amp;quot; packages to be installed. As we don't, or probably don't, have the gnupg keychain stuff configured, all packaged will be &amp;quot;unauthenticated&amp;quot; regardless of whether they are or not. We're telling it we also want a minimal install of the squeeze release, and to install to where we have the mount point of Partition 1 of the SD card in Slot 1 - which you should have already partitioned and formatted as ext2! &amp;lt;br /&amp;gt;&lt;br /&gt;
This takes a while... perhaps longer than doing the first stage on the PC and second-stage on Pandora.&lt;br /&gt;
&lt;br /&gt;
=== Setting up Apt ===&lt;br /&gt;
I've forgotten about this, as mostly it'll be set to the default Debian repository, but should you want to change it: &amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo nano /etc/apt/sources.list'''''&lt;br /&gt;
&lt;br /&gt;
UK people can set this to ''deb ftp://ftp.uk.debian.org/debian main non-free contrib'' to get pretty much everything, or can pick whichever local Debian repository they like - but be warned that not all of them have an armel repo!&amp;lt;br /&amp;gt;&lt;br /&gt;
By default, debootstrap will likely only get main.. adding the non-free and contrib branches are optional, but bring in more stuff.&lt;br /&gt;
&lt;br /&gt;
=== Desktop Environment ===&lt;br /&gt;
Now you have Debian, the world is yours for the taking!&lt;br /&gt;
Or something like that...&lt;br /&gt;
&lt;br /&gt;
Debian comes with a wide variety of desktop environments and window managers; from XFCE as you use on Angstrom by default, to KDE, GNOME, LXDE, Fluxbox, Enlightenment, etc..&amp;lt;br /&amp;gt;&lt;br /&gt;
Now's the time to choose one of them to install.. be aware that the bigger they are, the longer they'll take to install and the more resources they will eat up while in use.. as a rough guide from heavy to light:&amp;lt;br /&amp;gt;&lt;br /&gt;
* KDE&lt;br /&gt;
* GNOME&lt;br /&gt;
* Enlightenment ( Squeeze has e16 .. and is faster than I expected )&lt;br /&gt;
* XFCE&lt;br /&gt;
* LXDE&lt;br /&gt;
* Fluxbox&lt;br /&gt;
&lt;br /&gt;
Having recently tested KDE myself, it doesn't quite seem to work properly, so I'd avoid that for the moment... especially as it takes about ten hours to install!&lt;br /&gt;
&lt;br /&gt;
We shall install LXDE as it's a bit more light weight than XFCE and still provides a reasonable mainstream environment. While I do prefer Fluxbox overall, it's a bit of a paradigm shift to use from your standard desktop machine.&lt;br /&gt;
&lt;br /&gt;
If you haven't already, chroot into your environment.&lt;br /&gt;
You should already be root, so we'll get on with the installing.&lt;br /&gt;
&lt;br /&gt;
'''''apt-get install lxde'''''&lt;br /&gt;
&lt;br /&gt;
This may well take an age, so go do something else in the meantime.&amp;lt;br /&amp;gt;&lt;br /&gt;
You may also want a login manager.. your choices are amongst XDM, GDM, KDM and SLIM to name a few. KDM is perhaps a bit heavy, whereas GDM works fairly well even though it's rather heavy too. SLIM is what you use on Pandora anyway, and XDM is rather basic but usable all the same. GDM is automatically pulled in via LXDE anyway, so we may as well just use that for now.&lt;br /&gt;
&lt;br /&gt;
Additional:&amp;lt;br /&amp;gt;&lt;br /&gt;
Installing LXDE via the above command pulls in GDM by default.. if you use ''lxde-core'' instead, it removes a lot of the stuff that pulls in random things, and if you additionally use '''''aptitude install --without-recommends lxde-core''''' it should strip out even more. You will need to manually install ''less'', ''zenity'', and ''xterm'' for example. Zenity is especially needed for all the Pandora config scripts.&lt;br /&gt;
&lt;br /&gt;
1.0.3 has slimmed stuff down again.&amp;lt;br /&amp;gt;&lt;br /&gt;
Once in the chroot jail, I've performed the following: '''''aptitude install --without-recommends lxde-core slim lxterminal zenity less xserver-xorg-video-omap3 network-manager-gnome synaptic xfce4-power-manager apmd libnotify-bin gedit epiphany-browser eject gksu gnome-bluetooth python-dbus ca-certificates xinput busybox''''' which will effectively pull in all the Debian specifics we'll be needing, gutting out a rather large amount of cruft.&lt;br /&gt;
&lt;br /&gt;
Once it's done, we'll start tackling the Drivers.&lt;br /&gt;
&lt;br /&gt;
=== Device Drivers and PNDs ===&lt;br /&gt;
We shall tackle these one at a time, as there's quite a few of them.&lt;br /&gt;
&lt;br /&gt;
* X Display Driver&lt;br /&gt;
* SGX Drivers&lt;br /&gt;
* Keymap&lt;br /&gt;
* Nubs&lt;br /&gt;
* Touchscreen&lt;br /&gt;
* Wifi&lt;br /&gt;
* Bluetooth&lt;br /&gt;
* Kernel and Misc Bits and Pieces&lt;br /&gt;
* PNDs&lt;br /&gt;
&lt;br /&gt;
==== X Display Driver ====&lt;br /&gt;
Debian has a NEON-optimised omapfb driver. We shall use this, and pinch some configuration gubbins from Angstrom.&lt;br /&gt;
&lt;br /&gt;
'''''apt-get install xserver-xorg-video-omap3'''''&lt;br /&gt;
&lt;br /&gt;
We now need to create an xorg.conf .. though it'll be rather minimal as we only really want to overload what graphics device setup it has, so:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''nano /etc/X11/xorg.conf'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
 Section &amp;quot;Module&amp;quot;&lt;br /&gt;
 	Load	&amp;quot;extmod&amp;quot;&lt;br /&gt;
 	Load	&amp;quot;dbe&amp;quot;&lt;br /&gt;
 	Disable	&amp;quot;glx&amp;quot;&lt;br /&gt;
 	Disable	&amp;quot;dri&amp;quot;&lt;br /&gt;
 	Load	&amp;quot;dri2&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
 &lt;br /&gt;
 Section &amp;quot;ServerLayout&amp;quot;&lt;br /&gt;
 	Identifier	&amp;quot;DefaultLayout&amp;quot;&lt;br /&gt;
 	Screen		&amp;quot;Screen0&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
 &lt;br /&gt;
 Section &amp;quot;Screen&amp;quot;&lt;br /&gt;
 	Identifier		&amp;quot;Screen0&amp;quot;&lt;br /&gt;
 	Device			&amp;quot;OMAPFB&amp;quot;&lt;br /&gt;
 	Monitor			&amp;quot;Monitor0&amp;quot;&lt;br /&gt;
 	DefaultDepth	16&lt;br /&gt;
 	SubSection &amp;quot;Display&amp;quot;&lt;br /&gt;
 		Depth	16&lt;br /&gt;
 		Modes	&amp;quot;800x480&amp;quot;&lt;br /&gt;
 	EndSubSection&lt;br /&gt;
 EndSection&lt;br /&gt;
 &lt;br /&gt;
 Section &amp;quot;Monitor&amp;quot;&lt;br /&gt;
 	Identifier		&amp;quot;Monitor0&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
 &lt;br /&gt;
 Section &amp;quot;Device&amp;quot;&lt;br /&gt;
 	Identifier		&amp;quot;OMAPFB&amp;quot;&lt;br /&gt;
 	Driver			&amp;quot;omapfb&amp;quot;&lt;br /&gt;
 	Option			&amp;quot;fb&amp;quot;		&amp;quot;/dev/fb0&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
Most of this is pinched from the Angstrom xorg.conf minus the fb Option at the bottom, as our framebuffer has a different device node.&lt;br /&gt;
&lt;br /&gt;
That should be all you need for basic X though.&lt;br /&gt;
&lt;br /&gt;
==== SGX Drivers ====&lt;br /&gt;
Most of this has been pinched from http://elinux.org/BeagleBoardDebian#SGX_Video_Acceleration - why rewrite the wheel?&amp;lt;br /&amp;gt;&lt;br /&gt;
This mostly works apart from a few caveats, so I shall repeat it here for future reference and to keep all information in one place, and I've uploaded the resulting tarballs for convenience.&lt;br /&gt;
&lt;br /&gt;
You can either follow the above guide - substituting the BeagleBoard for the Pandora, or use the following preconfigured packages.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''cd /tmp'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''wget -c http://www.stuckiegamez.co.uk/apps/pandora/Debian/GFX_4_00_00_01_libs.tar.gz''''' ~20MB Libraries themselves&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''wget -c http://www.stuckiegamez.co.uk/apps/pandora/Debian/GFX_Linux_SDK.tar.gz''''' ~220MB Demos and SDK gubbins&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Technically, you don't really need that fat 220MB GFX_Linux_SDK tarball unless you really want it, or want to test the libraries are in place.&amp;lt;br /&amp;gt;&lt;br /&gt;
I'll cover installing both anyway...&lt;br /&gt;
&lt;br /&gt;
===== Libraries =====&lt;br /&gt;
'''''tar -zxvf GFX_4_00_00_01_libs.tar.gz'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''chmod +x ./install-SGX.sh'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''./install-SGX.sh'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''rm /devmem2_0.0-0ubuntu1_armel.deb''''' - this is particularly useless to us... and why it dumps it at root, I don't know!&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That package contains ES2, ES3 and ES5 libraries.. we're only really interested in ES2 ( haven't tried if ES3 or ES5 would even work! ) so:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''cd /usr/lib'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''ln -s ES2.0/* .'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Not hugely clean, but it works. For the brave, you could try ES3 or ES5 but.. you're on your own!&lt;br /&gt;
&lt;br /&gt;
===== Demos/SDK =====&lt;br /&gt;
'''''cd /tmp'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''tar -zxvf OGLES.tar.gz'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''tar -zxvf OGLES2.tar.gz'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can't run anything yet ( well, you might since you've chrooted in via Angstrom ) so we'll leave them in /tmp for the moment - or move them elsewhere - such as /opt if you're worried about Debian wiping out /tmp on boot.&lt;br /&gt;
&lt;br /&gt;
==== Keymap ====&lt;br /&gt;
The keymap is actually stupidly easy, and I've missed how easy it is for quite a while now!&amp;lt;br /&amp;gt;&lt;br /&gt;
We shall steal them from Angstrom.. so open up another Terminal.&amp;lt;br /&amp;gt;&lt;br /&gt;
As of now, I shall prefix Angstrom commands with ''Angstrom'' and Debian commands with ''Debian'' so you know which Terminal to type them in.&lt;br /&gt;
&lt;br /&gt;
''Angstrom'' '''''sudo cp /etc/keymap-extension-2.6.map /media/mmcblk0p1/etc''''' - this does assume you've got your SD card mounted in slot one, and with one ext2 partition.. adjust as necessary.&amp;lt;br /&amp;gt;&lt;br /&gt;
''Angstrom'' '''''sudo cp /etc/skel/.pndXmodmap /media/mmcblk0p1/etc/skel''''' - as above.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After some fiddling, if you stick the following into ''.xsession'' it'll actually get called...&lt;br /&gt;
 whoami &amp;gt; /tmp/currentuser&lt;br /&gt;
 killall -1 pndnotifyd &amp;amp;&lt;br /&gt;
 exec startlxde&lt;br /&gt;
&lt;br /&gt;
Of course, this is a bit hacky and hard-coded in that if you've chosen something other than lxde, you'll probably want to change that startlxde to something else!&lt;br /&gt;
&lt;br /&gt;
1.0.2 does something really hacky and actually starts pndnotifyd and pndevmapperd as daemons directly.&amp;lt;br /&amp;gt;&lt;br /&gt;
It also starts up the xfce4-power-manager for a battery meter.&lt;br /&gt;
&lt;br /&gt;
1.0.3 does something else again.. it does not have the '''killall -1 pndnotifyd &amp;amp;''' line, instead it has the following:&lt;br /&gt;
 sudo /etc/init.d/pndnotifyd-init restart&lt;br /&gt;
 sudo /etc/init.d/pndevmapperd-init restart&lt;br /&gt;
And has edited /etc/sudoers.d/99_libpnd to add access to those two lines without being prompted for a password.&lt;br /&gt;
&lt;br /&gt;
1.0.4 is again different, and doesn't HUP pndnotifyd at all as it seemed to work without much issue just by starting the service differently, also, due to use of GDM, we do the xmodmap at GDM's startup instead in the following manner: &amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo nano /etc/gdm/Init/\:0''''' - the \ is needed to use : as a character!&amp;lt;br /&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 xinput set-int-prop &amp;quot;touchscreen&amp;quot; &amp;quot;Evdev Axis Calibration&amp;quot; 32 3936 125 3873 183&lt;br /&gt;
 xmodmap /etc/skel/.pndXmodmap&lt;br /&gt;
 loadkeys /etc/keymap-extension-2.6.map&lt;br /&gt;
&lt;br /&gt;
The xinput line is for the evdev touchscreen configuration, if this is wrong, please run '''xinput_calibrator''' from a Terminal, and replace the line with what it gives you!&lt;br /&gt;
&lt;br /&gt;
The loadkeys line also ensures that the console gets the correct keymap as well.&lt;br /&gt;
&lt;br /&gt;
Thanks to chris_c for the GDM init hint, and mcobit for the loadkeys hint!&lt;br /&gt;
&lt;br /&gt;
Should probably copy more over but, this'll do for now.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Nubs ====&lt;br /&gt;
The nubs just require some more config stuff to be copied over, and a few rc scripts to be setup right.&amp;lt;br /&amp;gt;&lt;br /&gt;
''Angstrom'' '''''sudo cp -R /etc/pandora /media/mmcblk0p1/etc'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
This also copies over configurations for the LCD backlight, some pmenu and mmenu stuff, and some PND configuration bits.&lt;br /&gt;
&lt;br /&gt;
''Angstrom'' '''''sudo cp /etc/init.d/pandora-state /media/mmcblk0p1/etc/init.d''''' - pandora-state restores nubs and backlight settings, as well as saves them on exit.&lt;br /&gt;
&lt;br /&gt;
Configuration utils come in with the PND installation below.&lt;br /&gt;
&lt;br /&gt;
==== Touchscreen ====&lt;br /&gt;
===== Current 1.0.2/3 Release =====&lt;br /&gt;
1.0.2 uses evdev instead of libts for the touchscreen. This doesn't really require any configuration for the most part, but does need to be calibrated.&amp;lt;br /&amp;gt;&lt;br /&gt;
You'll need a full dev setup on the Pandora for this, as you'll need to compile the xinput_calibrator - http://www.freedesktop.org/wiki/Software/xinput_calibrator however it's fairly trivial once all the libraries are installed.&lt;br /&gt;
&lt;br /&gt;
My values, which you should put into .xsession, are as follows: '''''xinput set-int-prop &amp;quot;touchscreen&amp;quot; &amp;quot;Evdev Axis Calibration&amp;quot; 32 3936 125 3873 183''''' and you'll need xinput installed ( which you should've done above if following the 1.0.3 path. )&lt;br /&gt;
&lt;br /&gt;
This is already done on 1.0.4 and xinput_calibrator is included should you need to re-run it.&lt;br /&gt;
&lt;br /&gt;
===== libts for other releases =====&lt;br /&gt;
''Debian'' '''''apt-get install libxcb-dri2-0 xserver-xorg-input-tslib libts-bin'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Debian'' '''''nano /etc/profile.d/tslib.sh'''''&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 TSLIB_TSDEVICE=/dev/input/event5&lt;br /&gt;
 TSLIB_CONFFILE=/etc/ts.conf&lt;br /&gt;
 export TSLIB_TSDEVICE TSLIB_CONFFILE&lt;br /&gt;
&lt;br /&gt;
We'll do the rest of it on First Boot.&amp;lt;br /&amp;gt;&lt;br /&gt;
This will be fixed properly when WiFi issues settle, so I can finalize a build system and re-do everything as packages - including libts with the OpenPandora-specific patches from the git.&lt;br /&gt;
&lt;br /&gt;
==== Wifi ====&lt;br /&gt;
Wifi is fun... most of it will come in the kernel and modules/firmware pack when we get to it, but there's some ancillary scripts and things that lay in wait to catch you off guard!&amp;lt;br /&amp;gt;&lt;br /&gt;
''Angstrom'' '''''sudo cp /etc/init.d/wl1251-init /media/mmcblk0p1/etc/init.d'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Angstrom'' '''''sudo cp /lib/udev/rules.d/50-compat_firmware.rules /media/mmcblk0p1/lib/udev/rules.d'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Angstrom'' '''''sudo cp /lib/udev/rules.d/compat_firmware.sh /media/mmcblk0p1/lib/udev/rules.d'''''&lt;br /&gt;
&lt;br /&gt;
The wl1251-init script uses busybox. While you could edit the script and remove the dependency on busybox, it's probably better to just install busybox if you haven't already, so that there are less changes to deal with - seeing as it's only about 600kB.&amp;lt;br /&amp;gt;&lt;br /&gt;
''Debian'' '''''apt-get install busybox'''''&lt;br /&gt;
&lt;br /&gt;
While we don't necessarily need Network Manager, it's a damn sight more easier to use than battering iwconfig et al from the Terminal:&amp;lt;br /&amp;gt;&lt;br /&gt;
''Debian'' '''''apt-get install network-manager-gnome'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
This'll take a long time as it pulls in quite a lot of stuff...&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth ====&lt;br /&gt;
Debian's bluetooth setup seems to kick in and work without issue.&amp;lt;br /&amp;gt;&lt;br /&gt;
Probably need to get a clean way to toggle it on and off - as it defaults to being on.&lt;br /&gt;
&lt;br /&gt;
==== Kernel and Misc Bits and Pieces ====&lt;br /&gt;
The kernel *should* be easy... grabbing a fresh set would've been advisable, but this doesn't seem to come with everything so we'll steal from our running system again.&lt;br /&gt;
&lt;br /&gt;
''Angstrom'' '''''sudo cp -R /lib/modules/2.6.27.46-omap1 /media/mmcblk0p1/lib/modules'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Angstrom'' '''''sudo cp -R /lib/firmware /media/mmcblk0p1/lib/firmare'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Angstrom'' '''''sudo cp /boot/uImage /media/mmcblk0p1/boot/uImage'''''&lt;br /&gt;
&lt;br /&gt;
==== Battery Monitor ====&lt;br /&gt;
You'll likely want to know how much battery power you have!&amp;lt;br /&amp;gt;&lt;br /&gt;
''Debian'' '''''apt-get install apmd'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Debian'' '''''apt-get install xfce4-power-manager'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
Somewhat cheeky perhaps, but it does work! [http://www.gp32x.com/board/index.php?/topic/57653-a-guide-to-installing-lxde/page__view__findpost__p__928896 see this post]&lt;br /&gt;
&lt;br /&gt;
If you add '''''xfce4-power-manager &amp;amp;''''' before '''''exec startlxde''''' in your .xsession, it'll start up automatically for you.&lt;br /&gt;
&lt;br /&gt;
==== Misc Init Scripts and Things ====&lt;br /&gt;
There are a few random init scripts we need for things:&amp;lt;br /&amp;gt;&lt;br /&gt;
''Angstrom'' '''''sudo cp /etc/init.d/led-config /media/mmcblk0p1/etc/init.d''''' - configure the LEDs properly.&amp;lt;br /&amp;gt;&lt;br /&gt;
''Angstrom'' '''''sudo cp /etc/init.d/usb-gadget /media/mmcblk0p1/etc/init.d''''' - for initializing the usb gadget device - g_cdc for USB networking, for instance.&amp;lt;br /&amp;gt;&lt;br /&gt;
''Angstrom'' '''''sudo cp /usr/bin/usb-gadget /media/mmcblk0p1/usr/bin'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Angstrom'' '''''sudo cp /etc/profile.d/op_env.sh /media/mmcblk0p1/etc/profile.d''''' - effectively just tells SDL to use tslib driver&amp;lt;br /&amp;gt;&lt;br /&gt;
''Angstrom'' '''''sudo cp /etc/default/leds /media/mmcblk0p1/etc/default'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Angstrom'' '''''sudo cp /etc/default/usb-gadget /media/mmcblk0p1/etc/default'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Angstrom'' '''''sudo cp /etc/skel/.asoundrc /media/mmcblk0p1/etc/skel'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And some more stuff to install in Debian:&amp;lt;br /&amp;gt;&lt;br /&gt;
''Debian'' '''''apt-get install libnotify-bin'''''&lt;br /&gt;
&lt;br /&gt;
==== PNDs ====&lt;br /&gt;
There are some init scripts you need for the PNDs to work. These are:&amp;lt;br /&amp;gt;&lt;br /&gt;
''Angstrom'' '''''sudo cp /etc/init.d/pndevmapperd-init /media/mmcblk0p1/etc/init.d'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Angstrom'' '''''sudo cp /etc/init.d/pndnotifyd-init /media/mmcblk0p1/etc/init.d'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Angstrom'' '''''sudo cp /usr/bin/pnd* /media/mmcblk0p1/usr/bin''''' - there are a few pnd binaries, these include pnd_info, pnd_run, pndevmapperd and pndnotifyd.&amp;lt;br /&amp;gt;&lt;br /&gt;
''Angstrom'' '''''sudo cp /usr/lib/libpnd.so.1.0.1 /media/mmcblk0p1/usr/lib''''' - obviously nothing'll work without the pnd libraries!&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are a bunch of scripts and PNDs hiding in /usr/pandora.. we may as well grab them over as well.&amp;lt;br /&amp;gt;&lt;br /&gt;
''Angstrom'' '''''sudo cp -R /usr/pandora /media/mmcblk0p1/usr'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We need to do a symlink to the library properly now, and clean up some stuff.&amp;lt;br /&amp;gt;&lt;br /&gt;
''Debian'' '''''ln -s /usr/lib/libpnd.so.1.0.1 /usr/lib/libpnd.so.1'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Debian'' '''''rm -rf /usr/pandora/mmenu''''' - these are just PNDs that call the programs installed in Angstrom from MiniMenu. We don't have these programs installed on Debian so, they're useless to us.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== RC Scripts ====&lt;br /&gt;
&lt;br /&gt;
We also need to disable some things from running.. the first run script specifies the following:&amp;lt;br /&amp;gt;&lt;br /&gt;
 update-rc.d -f samba remove&lt;br /&gt;
 update-rc.d -f xinetd remove&lt;br /&gt;
 update-rc.d -f avahi-daemon remove&lt;br /&gt;
 update-rc.d -f apmd remove&lt;br /&gt;
 update-rc.d -f usb-gadget remove&lt;br /&gt;
 update-rc.d -f banner remove&lt;br /&gt;
 update-rc.d -f portmap remove&lt;br /&gt;
 update-rc.d -f mountnfs remove&lt;br /&gt;
 update-rc.d -f blueprobe remove&lt;br /&gt;
 update-rc.d -f dropbear remove&lt;br /&gt;
 update-rc.d -f wl1251-init remove&lt;br /&gt;
&lt;br /&gt;
We'll also need to add some bits to the rc.d script set.&lt;br /&gt;
===== Script Fixups =====&lt;br /&gt;
We need to fiddle with a few of the scripts - specifically led-config to add the dummy LSB information ( just rip it out of another script, and leave Required-Start, Required-Stop, Default-Start and Default-Stop empty, ) and pndnotifyd-init, pndevmapperd-init and pandora-state where you need to blank out the #adjust marker as it causes Debian to have fits.&lt;br /&gt;
&lt;br /&gt;
If you don't do this, the nub settings won't save, for instance, and some system scripts are not guaranteed to start up.&amp;lt;br /&amp;gt;&lt;br /&gt;
The update-rc.d program will shout at you which ones, and essentially, it's just some tidying up that needs done.&lt;br /&gt;
&lt;br /&gt;
It's now recommended to use update-rc.d to put these in rather than the old heavy handed ln calls:&lt;br /&gt;
 update-rc.d led-config defaults 05&lt;br /&gt;
 update-rc.d pndevmapperd-init defaults 30 40&lt;br /&gt;
 update-rc.d pndnotifyd-init defaults 30 40&lt;br /&gt;
 update-rc.d pandora-state defaults 05&lt;br /&gt;
&lt;br /&gt;
The pandora-state is different on Angstrom than Debian as it didn't start up with it's usual bindings, which was annoying!&lt;br /&gt;
&lt;br /&gt;
=== Users and Permissions ===&lt;br /&gt;
You may be wondering why Users haven't been done till the very end.. we've edited the /etc/skel setup which will be used to create your user details.&lt;br /&gt;
&lt;br /&gt;
If you have already jumped the gun and created a user previously, all changes we've done to /etc/skel will need to be mirrored in your home folder!&lt;br /&gt;
&lt;br /&gt;
''Debian'' ''''''adduser &amp;lt;username&amp;gt;''''' - obviously, replace &amp;lt;username&amp;gt; with what you want; for example ''adduser pandora''.&lt;br /&gt;
&lt;br /&gt;
One interesting thing I've noticed happens, is sometimes it'll happily create your user... then not give you full permissions to your own folder.. so let's beat it a bit.&amp;lt;br /&amp;gt;&lt;br /&gt;
''Debian'' '''''chown -R &amp;lt;username&amp;gt;:&amp;lt;username&amp;gt; /home/&amp;lt;username&amp;gt;''''' - replacing &amp;lt;username&amp;gt; with your actual username; for example ''chown pandora:pandora /home/pandora''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You'll probably want to use sudo, which will require you to be in the wheel group, which we are about to create:&amp;lt;br /&amp;gt;&lt;br /&gt;
''Debian'' '''''groupadd wheel'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
There's also few groups you'd want to be in, so we'll do that now.&amp;lt;br /&amp;gt;&lt;br /&gt;
''Debian'' '''''usermod -a -G wheel &amp;lt;username&amp;gt;''''' - you know the drill now... example; ''usermod -a -G wheel pandora''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Debian'' '''''usermod -a -G adm &amp;lt;username&amp;gt;'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Debian'' '''''usermod -a -G audio &amp;lt;username&amp;gt;'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Debian'' '''''usermod -a -G video &amp;lt;username&amp;gt;'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Debian'' '''''usermod -a -G plugdev &amp;lt;username&amp;gt;'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Debian'' '''''usermod -a -G users &amp;lt;username&amp;gt;'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Debian'' '''''usermod -a -G netdev &amp;lt;username&amp;gt;'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Technically, you could've done all this in the one line with adduser, but I'd rather keep it all separate so that if we end up with extra groups, we all know how to add them.&lt;br /&gt;
&lt;br /&gt;
You'll also need to do the above for every new user you create for the moment.&lt;br /&gt;
&lt;br /&gt;
There's a bunch of sudoers rules that are hidden as well that we need to steal ( I completely missed these twice - my thanks to sebt3 and DJWillis for pointing me to them! I thought the #includedir line was commented out due to the # ... *facepalm* )&amp;lt;br /&amp;gt;&lt;br /&gt;
''Angstrom'' '''''sudo cp /etc/sudoers.d/* /media/mmcblk0p1/etc/sudoers.d/'''''&lt;br /&gt;
&lt;br /&gt;
Finally, /tmp can sometimes go mad so we shall fix that just now too.&amp;lt;br /&amp;gt;&lt;br /&gt;
''Debian'' '''''chmod a+w /tmp'''''&lt;br /&gt;
&lt;br /&gt;
=== Reboot and Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
==== auto/boot.txt ====&lt;br /&gt;
We need either an autoboot.txt or a boot.txt now or we won't be able to boot up Debian.&amp;lt;br /&amp;gt;&lt;br /&gt;
There's no difference between either, other than autoboot will cause the Pandora to automatically boot from SD if it finds it, whereas boot requires holding the right shoulder button as usual.&amp;lt;br /&amp;gt;&lt;br /&gt;
''Debian'' '''''nano /autoboot.txt''''' - again, you could use boot.txt instead and press the right shoulder button during boot.&amp;lt;br /&amp;gt;&lt;br /&gt;
 setenv bootargs root=/dev/mmcblk0p1 rw rootwait vram=6272K omapfb.vram=0:3000K mmc_core.removable=0&lt;br /&gt;
&lt;br /&gt;
 ext2load mmc 0:1 0x80300000 /boot/uImage&lt;br /&gt;
 bootm 0x80300000&lt;br /&gt;
&lt;br /&gt;
All that's really left now is to reboot and catch any issues that may crop up!&lt;br /&gt;
&lt;br /&gt;
==== First Boot ====&lt;br /&gt;
&lt;br /&gt;
===== tslib calibration =====&lt;br /&gt;
First Boot should bring you up to GDM in all it's splendour. But Wait! The touchscreen! IT IS MADNESS!&amp;lt;br /&amp;gt;&lt;br /&gt;
If you've a USB keyboard, you can be one step ahead and do CTRL+ALT+F1 to jump to a terminal, but we're going to assume just the Pandora so we'll carry on and login.&lt;br /&gt;
&lt;br /&gt;
Once LXDE has finished loading up, press FN+ALT+F2 and type &amp;quot;lxterminal&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo su'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''export  TSLIB_TSDEVICE=/dev/input/event5'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''export TSLIB_CONFFILE=/etc/ts.conf'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''ts_calibrate'''''&lt;br /&gt;
&lt;br /&gt;
Touchscreen should behave itself now.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Finish up installing any left overs =====&lt;br /&gt;
While root ( that's what sudo su does ) we shall finish setting up anything that didn't take during our chroot session in Angstrom ( bluetooth usually )&amp;lt;br/&amp;gt;&lt;br /&gt;
'''''apt-get -f install'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''exit''''' - jump back to our user so we don't accidentally mess things up&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Cleanup ====&lt;br /&gt;
Potential clean-ups that should occur is packaging up the Pandora specific libraries and scripts into .deb files for maintenance purposes if nothing else. We can then either try and get them fed back into Debian, or provide our own Debian repo for Pandora.&lt;br /&gt;
&lt;br /&gt;
The following should probably be stuffed into deb files for easier maintainability:&amp;lt;br /&amp;gt;&lt;br /&gt;
* libpnd&lt;br /&gt;
* pandora specific scripts&lt;br /&gt;
* SGX drivers&lt;br /&gt;
* kernel&lt;br /&gt;
* modules and firmware&lt;br /&gt;
&lt;br /&gt;
== Maintenance and Upgrades ==&lt;br /&gt;
Maintenance on Debian is very easy.. it's just a case of running '''''sudo apt-get update &amp;amp;&amp;amp; sudo apt-get upgrade''''' from a console, or using Synaptic ( see below on how to install if your rootfs didn't have it. )&lt;br /&gt;
&lt;br /&gt;
== Common Issues/Fun Things To Do ==&lt;br /&gt;
There's a wealth of power at your fingertips with Debian, so place your fun things to do here!&amp;lt;br /&amp;gt;&lt;br /&gt;
Also, sometimes there are odd issues, so if you fix something odd, place it here too.&lt;br /&gt;
&lt;br /&gt;
=== Networking ===&lt;br /&gt;
Networking should work effectively the same as on Angstrom, but here's a run down of what to do anyway:&lt;br /&gt;
* Click the LXDE menu up.&lt;br /&gt;
* Click System Tools -&amp;gt; Toggle Wifi&lt;br /&gt;
* Click the Network Manager app between the process bar and the clock.&lt;br /&gt;
* Click your network - or select &amp;quot;Connect to Hidden Wireless Network&amp;quot; if it's not there and fill out the details.&lt;br /&gt;
* Fill out the keyring for your passwords to go into - so you only need to remember the one ;)&lt;br /&gt;
* The Network Manager icon should spin and then give you a strength bar as normal once connected.&lt;br /&gt;
&lt;br /&gt;
=== Synaptic ===&lt;br /&gt;
The 1.0.1 release did not include Synaptic.. it's back in 1.0.2 and 1.0.3&amp;lt;br /&amp;gt;&lt;br /&gt;
To get it back for the 1.0.1 release, it's simply a case of doing:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo apt-get update''''' - if you haven't done so for a while ( as in, days, not hours )&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo apt-get install synaptic'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
Then wait for a while as it downloads and installs.&lt;br /&gt;
&lt;br /&gt;
You'll find Synaptic under System Tools once it's done.&lt;br /&gt;
&lt;br /&gt;
=== My PNDs don't work, why?! ===&lt;br /&gt;
Generally, it'll be because of library differences.. I'm still trying to figure out the best way to deal with this, but you've got the Debian armel repository at your disposal, so you should be fine for a while!&lt;br /&gt;
&lt;br /&gt;
1.0.2 has some library compatibility with Pandora Angstrom but it's not complete. The PNDs of Wesnoth and BattleJewels will work for example, whereas SuperTux and GravityForce do not.&lt;br /&gt;
&lt;br /&gt;
Library compatibility was achieved by pulling packages manually from older revisions, symlinking some libraries and pulling stuff from experimental.. it was trial and error so, is a tad iffy.&lt;br /&gt;
&lt;br /&gt;
1.0.3 and 1.0.4 do not have library compatibility as it caused extra issues in 1.0.2, you'll need to either wait for 1.1 or pull in the needed libraries yourself.&lt;br /&gt;
&lt;br /&gt;
=== Wifi and Session Management is broken?! ===&lt;br /&gt;
Pre-1.0.3 there was an issue with this.. it should now be fixed in 1.0.3 so if you don't want to update, perform the following:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo rm -f /etc/udev/rules.d/70-persistent-net.rules'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo chmod +x /usr/lib/dbus-1.0/dbus-daemon-launch-helper'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
and reboot.. everything should now work properly.&lt;br /&gt;
&lt;br /&gt;
=== My PNDs don't appear immediately? ===&lt;br /&gt;
This is an odd one.. by rights they should.. and I also don't quite understand why pndnotifyd kicks in when you open a terminal, but it does.&lt;br /&gt;
&lt;br /&gt;
Therefore, if you haven't done so already, open up a terminal and then close it.. pndnotifyd then starts up and takes care of all the PND stuff for you.&lt;br /&gt;
&lt;br /&gt;
This should be fixed in 1.0.4&lt;br /&gt;
&lt;br /&gt;
=== I get no notifications in 1.0.3 ===&lt;br /&gt;
This is actually because notification-daemon hasn't been installed.&lt;br /&gt;
&lt;br /&gt;
=== Packages to add in 1.1! ===&lt;br /&gt;
Feel free to add packages here that I should include in the next release (1.1)&lt;br /&gt;
* wireless-tools&lt;br /&gt;
* x11-xserver-utils ( I keep forgetting this.. it's for xmodmap )&lt;br /&gt;
* xinput - for evdev's configuration&lt;br /&gt;
* console-tools - for chvt&lt;br /&gt;
* xterm - for failsafe console&lt;br /&gt;
* bash-completion - tis handy to have&lt;br /&gt;
* aptitude - somehow I forgot this.&lt;br /&gt;
&lt;br /&gt;
= Emdebian Grip =&lt;br /&gt;
Most of the above can be taken for Grip, with the following changes...&lt;br /&gt;
&lt;br /&gt;
Why Grip? It's much smaller and targeted for embedded devices... I originally was going to use Grip actually, but it was a bit buggered at the time, though it seems to be working now.&amp;lt;br /&amp;gt;&lt;br /&gt;
Additionally, Emdebian comes in Crush and Baked flavours... Grip is compatible with Desktop Debian, so we'll use that.. Crush is smaller again, and generally requires a cross-compiler to setup packages, and Baked is effectively what we do with Angstrom.&lt;br /&gt;
&lt;br /&gt;
Emdebian could also in theory be shrunk enough to actually fit on NAND... which is something I'll be looking into - if only to document another alternative process to the Angstrom OE bitbake bonanza.&lt;br /&gt;
&lt;br /&gt;
== Multistrap ==&lt;br /&gt;
Grip's debootstrap is slightly different... it uses multistrap instead.&lt;br /&gt;
&lt;br /&gt;
This allows us to use Grip's repository as the base, and Desktop Debian's repositories for anything else we might need ( omap3 drivers, for instance. ) This is also particularly useful for us when I get around to doing Pandora specifics compiled for Debian, as then we just add that repository as well.&lt;br /&gt;
&lt;br /&gt;
Anyway, we need Debian running for this - be it on your Desktop ( or Ubuntu ) or on your Pandora ( recommended, as this guide assumes this is what you're doing. )&amp;lt;br /&amp;gt;&lt;br /&gt;
Install Multistrap - '''''sudo apt-get install multistrap'''''&lt;br /&gt;
&lt;br /&gt;
You'll also need to mount an SD card somewhere manually.. I've mounted mine to /tmp/emdebian: '''''sudo umount /dev/mmcblk1p1 &amp;amp;&amp;amp; mount /dev/mmcblk1p1 /tmp/emdebian'''''&lt;br /&gt;
&lt;br /&gt;
=== Config File ===&lt;br /&gt;
'''''nano multistrap'''''&lt;br /&gt;
 [General]&lt;br /&gt;
 arch=armel&lt;br /&gt;
 directory=/tmp/emdebian&lt;br /&gt;
 cleanup=true&lt;br /&gt;
 noauth=false&lt;br /&gt;
 unpack=true&lt;br /&gt;
 aptsources=Grip Debian&lt;br /&gt;
 debootstrap=Grip Debian&lt;br /&gt;
 &lt;br /&gt;
 [Debian]&lt;br /&gt;
 packages=&lt;br /&gt;
 source=ftp://ftp.uk.debian.org/debian&lt;br /&gt;
 keyring=debian-archive-keyring&lt;br /&gt;
 suite=squeeze&lt;br /&gt;
 &lt;br /&gt;
 [Grip]&lt;br /&gt;
 packages=&lt;br /&gt;
 keyring=emdebian-archive-keyring&lt;br /&gt;
 source=http://www.emdebian.org/grip&lt;br /&gt;
 suite=squeeze&lt;br /&gt;
&lt;br /&gt;
'''''sudo multistrap -f multistrap'''''&lt;br /&gt;
&lt;br /&gt;
Change /tmp/multistrap to where ever you want the debootstrap to occur.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Gotcha''''' I had issues with it complaining about unauthenticated packages, just add '''--no-auth''' to your command line and it'll continue happily.''&lt;br /&gt;
&lt;br /&gt;
This shouldn't take too long ( was about half an hour on my Pandora ) and gives you a very sparse minimal rootfs of 192Mb.&lt;br /&gt;
&lt;br /&gt;
The following multistrap config will give you what's in the 1.0.4 Grip rootfs&lt;br /&gt;
 [General]&lt;br /&gt;
 arch=armel&lt;br /&gt;
 directory=/tmp/emdebian&lt;br /&gt;
 cleanup=true&lt;br /&gt;
 noauth=false&lt;br /&gt;
 unpack=true&lt;br /&gt;
 aptsources=Grip Debian&lt;br /&gt;
 debootstrap=Grip Debian&lt;br /&gt;
 &lt;br /&gt;
 [Debian]&lt;br /&gt;
 packages=xserver-xorg-video-omap3 libxcb-dri2-0 libnotify-bin xinput&lt;br /&gt;
 source=ftp://ftp.uk.debian.org/debian&lt;br /&gt;
 keyring=debian-archive-keyring&lt;br /&gt;
 suite=squeeze&lt;br /&gt;
 &lt;br /&gt;
 [Grip]&lt;br /&gt;
 packages=lxde busybox network-manager-gnome xfce4-power-manager apmd gdm less sudo nano wireless-tools iceweasel synaptic gnome-mplayer x11-xserver-utils notification-daemon gnome-keyring&lt;br /&gt;
 keyring=emdebian-archive-keyring&lt;br /&gt;
 source=http://www.emdebian.org/grip&lt;br /&gt;
 suite=squeeze&lt;br /&gt;
&lt;br /&gt;
You could also add packages into the Grip and Debian configuration parts, and it will automatically pull them down and install them for you, be careful with what you pull in though, as not everything has been repackaged for Grip, so it will pull down the &amp;quot;full fat&amp;quot; variants from Debian instead.&lt;br /&gt;
&lt;br /&gt;
You might get errors of unconfigured packages, just chroot in and run '''''apt-get -f install''''' to finish up.. if there are warnings about proc, ignore them till you reboot into the rootfs and re-run '''''sudo apt-get -f install'''''.&lt;br /&gt;
&lt;br /&gt;
== Chroot and Setup ==&lt;br /&gt;
Now we can just chroot in and setup as we see fit.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo chroot /tmp/emdebian''''' - again, you may have mounted your media elsewhere.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo apt-get update'''''&lt;br /&gt;
&lt;br /&gt;
You can now just follow the Debian guide as above, with the added bonus of most packages will come from Grip and be pre-stripped of extra fluff.&amp;lt;br /&amp;gt;&lt;br /&gt;
I would recommend to get as much stuff as possible downloaded in the initial multistrap however, as it will automatically clean stuff up for you.&lt;br /&gt;
&lt;br /&gt;
= Debian On NAND =&lt;br /&gt;
First of all, &amp;lt;br /&amp;gt;&lt;br /&gt;
'''''WARNING: DO NOT ATTEMPT THIS.'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''NO, SERIOUSLY, DON'T! THIS IS UTTERLY HACKY AND IT IS ON YOUR OWN HEAD IF YOU MESS UP.'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Get a Debian Rootfs ==&lt;br /&gt;
Your NAND has about 475Mb for the rootfs to play with ( there are other partitions, remember! ), therefore Desktop Debian is a bit too large for our purposes - even 1.0.3's complete massacre still ended up too big by far; so we need to look at Emdebian, of which there are three flavours - grip, crush and baked.&amp;lt;br /&amp;gt;&lt;br /&gt;
We'll be using Grip, so follow the guide above for at least getting a working system on SD before going anywhere near your NAND.&lt;br /&gt;
&lt;br /&gt;
We can use compression to get your rootfs down by 40-50%, but I'd still be vary wary of a large rootfs!&lt;br /&gt;
&lt;br /&gt;
If you're lazy, grab my pre-made Grip rootfs, which includes LXDE by default.&lt;br /&gt;
&lt;br /&gt;
== Preparing the Rootfs ==&lt;br /&gt;
Boot into your rootfs for this, so we can ensure we're as up to date as we can be, then clean the apt cache, and then any crap we installed which we don't need any more, such as things which were installed as dependencies and the parent's been removed.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo apt-get update'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo apt-get upgrade'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo apt-get clean'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo apt-get autoclean'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Additionally, you could wipe out the documentation ( if any ) and manually pull out unwanted packages. However, if you're pulling stuff out, you shouldn't have installed it in the first place! Go back to the start and do it again as punishment!&lt;br /&gt;
&lt;br /&gt;
This post on the Ubuntu forums is particularly helpful: http://ubuntuforums.org/showthread.php?t=140920&lt;br /&gt;
&lt;br /&gt;
Depending on your needs, you may also want to wipe out your home folder and reinstate it from /etc/skel&amp;lt;br /&amp;gt;&lt;br /&gt;
You'll also want to wipe out tmp - '''''sudo rm -rf /tmp/*'''''&lt;br /&gt;
&lt;br /&gt;
Now shut down and either place your SD card in your PC. You can do this on Pandora, but you will need a lot of space.&lt;br /&gt;
&lt;br /&gt;
Copy your rootfs somewhere.. I suggest /tmp/pandora-debian&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''mkdir /tmp/pandora-debian'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo cp -p -r /media/my/sd/card/* /tmp/pandora-debian''''' - this will preserve Permissions and copy everything Recursively.&lt;br /&gt;
&lt;br /&gt;
We need to edit the fstab so that it can boot properly, if you haven't done so already.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo nano /tmp/pandora-debian/etc/fstab'''''&lt;br /&gt;
 # OpenPandora fstab.&lt;br /&gt;
 &lt;br /&gt;
 rootfs               /                    auto       defaults,noatime      1  1&lt;br /&gt;
 proc                 /proc                proc       defaults              0  0&lt;br /&gt;
 devpts               /dev/pts             devpts     mode=0620,gid=5       0  0&lt;br /&gt;
 usbfs                /proc/bus/usb        usbfs      defaults              0  0&lt;br /&gt;
 tmpfs                /var/volatile        tmpfs      defaults              0  0&lt;br /&gt;
 tmpfs                /dev/shm             tmpfs      mode=0777             0  0&lt;br /&gt;
 tmpfs                /media/ram           tmpfs      defaults              0  0&lt;br /&gt;
&lt;br /&gt;
This should look familiar, as it's effectively your stock fstab minus the boot partition ( we have a kernel in our rootfs, if you've followed the above guides... )&lt;br /&gt;
&lt;br /&gt;
We should also get rid of the autoboot.txt or boot.txt; '''''sudo rm /tmp/pandora-debian/autoboot.txt'''''&lt;br /&gt;
&lt;br /&gt;
== Creating the Image ==&lt;br /&gt;
You need mtd-utils in your Debian distro of choice. '''''sudo apt-get install mtd-utils'''''&lt;br /&gt;
&lt;br /&gt;
Now, mkfs.ubifs can compress using either LZO ( by default ) or zlib and will get your rootfs about 40-50% smaller depending on what you choose. It's also possible to use a combination of both, which is what we will do later.. Of course, if your rootfs is full of pre-compressed stuff already, it's not really going to shrink a great deal.&amp;lt;br /&amp;gt;&lt;br /&gt;
For a full run down on mkfs.ubifs and co, see here: http://www.linux-mtd.infradead.org/doc/ubifs.html&lt;br /&gt;
&lt;br /&gt;
Download the flash kit: http://openpandora.org/firmware/pandora-flash-kit.zip and extract it to /tmp/flash. I suggest reading the README as well.&lt;br /&gt;
&lt;br /&gt;
Now run these fun commands... what we're doing is we're making a ubifs image first, then making an md5 checksum.&amp;lt;br /&amp;gt;&lt;br /&gt;
We're also favoring LZO compression meaning we're mixing zlib and LZO to get the best compression we can.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''sudo mkfs.ubifs -r /tmp/pandora-debian -o rootfs.img -m 2048 -e 129024 -c 4042 -x favor_lzo -X 20'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''md5sum rootfs.img &amp;gt; rootfs.md5'''''&lt;br /&gt;
&lt;br /&gt;
'''STOP! If your rootfs.img is getting close to 480Mb, you might not want to try and flash it.. it may be fine, but I would recommend 450Mb as an absolute maximum.'''&lt;br /&gt;
&lt;br /&gt;
== Flashing the Image ==&lt;br /&gt;
I shall repeat:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''WARNING: DO NOT ATTEMPT THIS.'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''NO, SERIOUSLY, DON'T! THIS IS UTTERLY HACKY AND IT IS ON YOUR OWN HEAD IF YOU MESS UP.'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Stick the following on to a FAT32 formatted SD card:&amp;lt;br /&amp;gt;&lt;br /&gt;
* '''boot.scr''' - from the flash kit.&lt;br /&gt;
* '''rootfs.img''' - the image you've just created.&lt;br /&gt;
* '''rootfs.md5''' - the checksum to the image.&lt;br /&gt;
&lt;br /&gt;
Place it in slot 1 of your Pandora ( the left slot, ) reboot while holding the right trigger, select boot from SD, cross your fingers and pray to the Pandora Gods.&lt;br /&gt;
&lt;br /&gt;
Once it's done.. reboot and see what mess you've made, assuming you get it to boot!&amp;lt;br /&amp;gt;&lt;br /&gt;
If you haven't got it to boot, on your FAT32 flasher card, add an autoboot.txt with the following:&lt;br /&gt;
 setenv bootargs ubi.mtd=4 ubi.mtd=3 root=ubi0:rootfs rootfstype=ubifs rw vram=6272K omapfb.vram=0:3000K&lt;br /&gt;
 ubi part boot &amp;amp;&amp;amp; ubifsmount boot &amp;amp;&amp;amp; ubifsload ${loadaddr} uImage &amp;amp;&amp;amp; bootm ${loadaddr};&lt;br /&gt;
&lt;br /&gt;
As this will let you see what's gone wrong... I had to do this a few times, as I buggered it up myself...&lt;br /&gt;
&lt;br /&gt;
Congratulations, you now have Debian on NAND rather than Angstrom.&amp;lt;br /&amp;gt;&lt;br /&gt;
Also, these instructions could easily be adapted to allow you to use any other distro that boots on Pandora.&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Operating system]]&lt;br /&gt;
[[Category:Storage card]]&lt;br /&gt;
[[Category:Booting]]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Hardware_hacking&amp;diff=10284</id>
		<title>Hardware hacking</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Hardware_hacking&amp;diff=10284"/>
		<updated>2012-05-05T13:28:00Z</updated>

		<summary type="html">&lt;p&gt;Notaz: /* UART */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{introNote|About custom hardware extensions, see also [[Kernel interface]]}}&lt;br /&gt;
==Official Hackers Manual==&lt;br /&gt;
There is a LOT of great information in this:&lt;br /&gt;
[http://www.openpandora.org/downloads/PANDORA_Hackers_manual_v101.pdf Pandora Hackers Manual v1.01 by MWeston]&lt;br /&gt;
&lt;br /&gt;
==Pinouts==&lt;br /&gt;
Here's a list of pinouts for the various connectors and boards.&lt;br /&gt;
&lt;br /&gt;
Here's a pic of the board, some of the pinouts can be seen on it. [http://pandorapress.net/files/2010/02/rev5.jpg]&lt;br /&gt;
&lt;br /&gt;
==Ext Connector==&lt;br /&gt;
[[Image:Cable_connector pinout.png|thumb|TV cable connector]]&lt;br /&gt;
''What does it have?''&lt;br /&gt;
* UART2&lt;br /&gt;
* UART3&lt;br /&gt;
* TV out&lt;br /&gt;
* Stereo line out&lt;br /&gt;
* Stereo line in&lt;br /&gt;
* The UART lines can also be used as GPIO (six of them) and PWM lines (four of them).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Where can we get the connectors from?''&lt;br /&gt;
&lt;br /&gt;
* The connector appears to be a Tyco Electronics connector, part number 1717169-2&lt;br /&gt;
* The manufacturer does *not* stock these for engineering samples, and very few vendors carry them&lt;br /&gt;
* Community member [http://boards.openpandora.org/index.php?/user/157-wizardstan/ WizardStan] has ordered a bunch and is selling them at $2 a piece plus shipping from Canada, [http://boards.openpandora.org/index.php?/topic/2675-ext-connectors/ see here (thread)] or [http://pandorapress.net/2011/05/18/ext-connectors-have-arrived/ here (article)]&lt;br /&gt;
&lt;br /&gt;
===How Do I Make a TV-Out Cable?===&lt;br /&gt;
* There are some useful tips in the [http://boards.openpandora.org/index.php?/topic/2675-ext-connectors/ EXT Connectors] thread.&lt;br /&gt;
* A guide explaining one way of creating the video cables can be found [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,23,465 here]&lt;br /&gt;
* MarkoeZ Has written a blog post about it [http://markoez.pirategames.co.uk/index.php/blog/pandora-ext-tv-out-explained/ here]&lt;br /&gt;
&lt;br /&gt;
==Battery==&lt;br /&gt;
[[Image:Battery.jpg|thumb]]&lt;br /&gt;
* 3.7V &lt;br /&gt;
* Lithium polymer single cell battery&lt;br /&gt;
* 4000 mAH, 4 AH&lt;br /&gt;
* battery cover here: [http://www.openpandora.org/images/Battery2.jpg]&lt;br /&gt;
* reading out battery information: [[data provided by Battery and Power driver]]&lt;br /&gt;
&lt;br /&gt;
==Internal connections==&lt;br /&gt;
&lt;br /&gt;
===LCD===&lt;br /&gt;
* TD043MTEA1 [http://beyondinfinite.com/lcd/Library/Toppoly/TD043MTEA1.pdf datasheet]&lt;br /&gt;
* LTPS (8-bit parallel input for R, G and B, with separate horizontal and vertical sync)&lt;br /&gt;
* 3.3V?&lt;br /&gt;
&lt;br /&gt;
===UART===&lt;br /&gt;
* UART2 and 3 are available via the EXT connector, and via internal solder pads on the latest revision&lt;br /&gt;
** UART2 appears to support hardware flow control with RTS/CTS lines&lt;br /&gt;
** On the 2.6.27 Kernel UART3 is /dev/ttyS0&lt;br /&gt;
** On 2.6.37 or later, UART2 is accessible through /dev/ttyO1, UART3 is on /dev/ttyO2&lt;br /&gt;
&lt;br /&gt;
===GPIO===&lt;br /&gt;
* 6 are available on the EXT connector&lt;br /&gt;
* 7 are internal, 2 of which can be used as extra shoulder buttons&lt;br /&gt;
* 1 located on the LCD cable&lt;br /&gt;
&lt;br /&gt;
===JTAG===&lt;br /&gt;
* Yes, 1.8V 10-pin (board label JTAG)&lt;br /&gt;
&lt;br /&gt;
===I&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C===&lt;br /&gt;
* One at 1.8V from the OMAP (board label I2C3-1V8)&lt;br /&gt;
* One at 2.8V (board label I2C3-2V8)&lt;br /&gt;
&lt;br /&gt;
=== USB ===&lt;br /&gt;
* No internal USB ports&lt;br /&gt;
&lt;br /&gt;
===Keypad backlight===&lt;br /&gt;
* ?&lt;br /&gt;
&lt;br /&gt;
===Extra LEDs===&lt;br /&gt;
LED7 and LED8 can be added. You need to add FETs (Q17 and Q18) and resistors (R165, R166, R167 and R168)&lt;br /&gt;
See the official &amp;quot;Pandora Hacker Guide&amp;quot; from Michael Weston for more details and component values.&lt;br /&gt;
&lt;br /&gt;
==Breakout Board==&lt;br /&gt;
[[Image:Breakoutboard.jpg|thumb|alt=Developer's breakout board|Developer's breakout board]]&lt;br /&gt;
This is the breakout board used by Pandora team members during development. Only a small number were made, and they are not available to the public. However a similar product (or gerber files) may be released in the future. A schematic for this board is available here: http://openpandora.ca/schematic/AV_Board_schematic.pdf&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
[[Category:Hacking]]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Kernel_interface&amp;diff=10234</id>
		<title>Kernel interface</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Kernel_interface&amp;diff=10234"/>
		<updated>2012-04-27T23:02:51Z</updated>

		<summary type="html">&lt;p&gt;Notaz: nub modes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{hint|For apps use higher level libraries/interfaces like SDL, Qt, X or similar for your own good (portability). It may be impossible to retain this layout on some major hardware revision, let's say Pandora 3000, and your program will break. Also this requires some level of Linux programming knowledge.}}&lt;br /&gt;
&lt;br /&gt;
In case you need to write low level code (you can't/don't want to use high level libs like [[SDL]]), you can use [[kernel]] interface. This is the recommended way to access [[hardware]] (as opposed to [[GP2X]] style of accessing chip registers by mmap'ing /dev/mem), because in case hardware changes are needed in future, they could be handled by kernel and all programs would still work. It also should allow several programs to work at the same time and should be more stable.&lt;br /&gt;
&lt;br /&gt;
==Input==&lt;br /&gt;
[[Buttons]], [[keypad]], [[touchscreen]] and [[nubs]] are all exposed through Linux event interface (EVDEV). All devices are represented by '''/dev/input/eventX''' files, which can be opened, read and queried (using ioctl calls). The reads can be synchronous (the read will only return when user does something, like presses the button), or asynchronous (the system will report what changed since the last time you asked).&lt;br /&gt;
&lt;br /&gt;
{{warning&lt;br /&gt;
|Don't hardcode device filenames in your program!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
For example, currently /dev/input/event2 represents game buttons, but in future it may become touchscreen. Scan input device names instead, example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
for (i = 0; 1; i++)&lt;br /&gt;
{&lt;br /&gt;
  sprintf(name, &amp;quot;/dev/input/event%i&amp;quot;, i);&lt;br /&gt;
  fd = open(name, O_RDONLY);&lt;br /&gt;
  if (fd &amp;lt; 0) break; /* no more devices */&lt;br /&gt;
  ioctl(fd, EVIOCGNAME(sizeof(name)), name);&lt;br /&gt;
  if (strcmp(name, &amp;quot;gpio-keys&amp;quot;) == 0)&lt;br /&gt;
    return fd; /* found the buttons! */&lt;br /&gt;
  close(fd); /* we don't need this device */&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
List of device names and events they send:&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!name&lt;br /&gt;
!description&lt;br /&gt;
!event.type&lt;br /&gt;
!event.code&lt;br /&gt;
!event.value&lt;br /&gt;
|-&lt;br /&gt;
|keypad&lt;br /&gt;
|keypad&lt;br /&gt;
|EV_KEY&lt;br /&gt;
|KEY_0...KEY_Z, KEY_BACKSPACE, KEY_LEFTSHIFT, KEY_SPACE, KEY_ENTER, KEY_COMMA, KEY_DOT, KEY_FN&lt;br /&gt;
|0 - released&amp;lt;br&amp;gt; 1 - pressed&amp;lt;br&amp;gt; 2 - autorepeat event&lt;br /&gt;
|-&lt;br /&gt;
|gpio-keys&lt;br /&gt;
|game buttons&lt;br /&gt;
|EV_KEY&lt;br /&gt;
|KEY_UP, KEY_DOWN, KEY_LEFT, KEY_RIGHT, KEY_MENU (Pandora button), KEY_LEFTALT (Start), KEY_LEFTCTRL (Select), KEY_END (Y/North), KEY_HOME (A/East), KEY_PAGEDOWN (X/South), KEY_END (B/West), KEY_RIGHTSHIFT (Shoulder L), KEY_RIGHTCTRL (Shoulder R), KEY_KPPLUS (Shoulder L2), KEY_KPMINUS (Shoulder R2), KEY_COFFEE (Hold)&lt;br /&gt;
|0 - released&amp;lt;br&amp;gt; 1 - pressed&lt;br /&gt;
|-&lt;br /&gt;
|gpio-keys&lt;br /&gt;
|lid state&lt;br /&gt;
|EV_SW&lt;br /&gt;
|SW_LID&lt;br /&gt;
|0 - closing&amp;lt;br&amp;gt; 1 - opening&lt;br /&gt;
|-&lt;br /&gt;
|touchscreen&lt;br /&gt;
|touchscreen&lt;br /&gt;
|EV_ABS&lt;br /&gt;
|ABS_X, ABS_Y, ABS_PRESSURE&lt;br /&gt;
|varies, use calibration data&lt;br /&gt;
|-&lt;br /&gt;
|nub0&lt;br /&gt;
|left nub&lt;br /&gt;
|EV_ABS&lt;br /&gt;
|ABS_X, ABS_Y&lt;br /&gt;
| -256 (Left/Up)&amp;lt;br&amp;gt;0&amp;lt;br&amp;gt;+256 (Right/Down)&lt;br /&gt;
|-&lt;br /&gt;
|nub1&lt;br /&gt;
|right nub&lt;br /&gt;
|EV_ABS&lt;br /&gt;
|ABS_X, ABS_Y&lt;br /&gt;
| -256 (Left/Up))&amp;lt;br&amp;gt;0&amp;lt;br&amp;gt;+256 (Right/Down)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Sample code:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://beagleboard.googlecode.com/files/evtest.c evtest.c]&lt;br /&gt;
[http://git.openpandora.org/cgi-bin/gitweb.cgi?p=pandora-misc.git;a=blob;f=op_test_inputs.c;hb=HEAD op_test_inputs.c]&lt;br /&gt;
&lt;br /&gt;
===Nubs===&lt;br /&gt;
Nubs have 3 modes that can be switched during runtime: absolute, mouse, mbuttons; this can be done by writing one of those 3 strings to /proc/pandora/nubX/mode . On mode change /dev/input/event* files belonging to nubs are recreated and must be reopened.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Warning:&amp;lt;/strong&amp;gt; it is not guaranteed that input files will finish recreating after a write to /proc/pandora/nubX/mode finishes, it is application's responsibility to wait until those files are available.&lt;br /&gt;
&lt;br /&gt;
===Touchscreen===&lt;br /&gt;
Event interface returns uncalibrated values directly from driver, so you need to use tslib or manage calibration yourself (using data from /etc/pointercal).&lt;br /&gt;
&lt;br /&gt;
===X11===&lt;br /&gt;
When using the direct kernel api for input, it is also important to stop X processing the events as well. To do this you can create an X window to eat the events. There is also a utility that comes with the Pandora to do this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
op_runfbapp ./yourapp&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
Pandora uses [[ALSA]], but it has [[OSS]] emulation enabled too, so [[GP2X]] code should work.&lt;br /&gt;
&lt;br /&gt;
==Video==&lt;br /&gt;
===Architecture===&lt;br /&gt;
Framebuffer device (/dev/fbX) is supported. There are 3 framebuffers available ('''/dev/fb0''', /dev/fb1 and /dev/fb2), which represent 3 graphics/video layers on [[OMAP3]] by default (but can be reconfigured). Only /dev/fb0 is enabled by default.&lt;br /&gt;
&lt;br /&gt;
[[OMAP3]] display subsystem is controlled by a driver known as [[DSS2]], which has various controls available on /sys/devices/platform/omapdss/ (but they are not meant to be changed by programs, so they are root writable only). The driver exposes 3 layers (called overlays) and 2 displays. Overlays 1 and 2 can perform hardware scaling on the fly using 5-tap poly-phase filter, overlay0 can not. Displays 0 and 1 represent LCD and TV respectively. By default the 3 framebuffers (/dev/fbX) are redirected to 3 overlays, which all output to the LCD. This configuration is not meant to be changed by programs, only firmware should manage these.&lt;br /&gt;
&lt;br /&gt;
===Basic usage===&lt;br /&gt;
====framebuffer interface====&lt;br /&gt;
Framebuffers can be accessed Linux fbdev interface:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
fbdev = open(&amp;quot;/dev/fb0&amp;quot;, O_RDONLY);&lt;br /&gt;
buffer = mmap(0, 800*480*2, PROT_WRITE, MAP_SHARED, fbdev, 0);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
(this is basic example, no error checks)&lt;br /&gt;
&lt;br /&gt;
the returned pointer can be used to draw on the screen.&lt;br /&gt;
&lt;br /&gt;
Be sure to #include &amp;lt;linux/fb.h&amp;gt; to get access to the FB device ioctl interface, and &amp;lt;sys/ioctl.h&amp;gt; for access to ioctl itself.&lt;br /&gt;
&lt;br /&gt;
====double buffering====&lt;br /&gt;
This can be achieved using FBIOPAN_DISPLAY ioctl system call. For this you need to mmap framebuffer of double size&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
buffer1 = mmap(0, 800*480*2 * 2, PROT_WRITE, MAP_SHARED, fbdev, 0);&lt;br /&gt;
buffer2 = (char *)mem + 800*480*2;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then to display buffer2 you would call:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct fb_var_screeninfo fbvar;&lt;br /&gt;
ioctl(fbdev, FBIOGET_VSCREENINFO, &amp;amp;fbvar);&lt;br /&gt;
fbvar.yoffset = 480;&lt;br /&gt;
ioctl(fbdev, FBIOPAN_DISPLAY, &amp;amp;fbvar);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
going back to buffer1 would be repeating above with fbvar.yoffset = 0. Tripple or quad buffering can be implemented using the same technique.&lt;br /&gt;
&lt;br /&gt;
====vertical sync====&lt;br /&gt;
Linux has standard FBIO_WAITFORVSYNC for this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
int arg = 0;&lt;br /&gt;
ioctl(fbdev, FBIO_WAITFORVSYNC, &amp;amp;arg);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
be sure to pass argument value 0 or it will not work.&lt;br /&gt;
&lt;br /&gt;
Currently FBIO_WAITFORVSYNC is not defined in &amp;lt;linux/fb.h&amp;gt;, although this is in the process of modification. For now, define in the following manner:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#ifndef FBIO_WAITFORVSYNC&lt;br /&gt;
  #define FBIO_WAITFORVSYNC _IOW('F', 0x20, __u32)&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====hardware scaling====&lt;br /&gt;
Overlay1 (/dev/fb1) can be used to achieve hardware scaling. Technically overlay2 (fb2) can be used for this too, but it is planned to be used by the system for TV-out functionality, so don't use it. The overlay is configured using series of standard and OMAP specific ioctl calls, but the system ships with some tools to achieve this from scripts too. This way the framebuffer can be set up for some arbitrary size (say 320x240) and can output to LCD as 800x480 with hardware scaling.&lt;br /&gt;
Here is an example script:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ofbset -fb /dev/fb1 -pos 0 0 -size 800 480 -mem 307200 -en 1&lt;br /&gt;
fbset -fb /dev/fb1 -g 320 240 320 480 16&lt;br /&gt;
&lt;br /&gt;
./your_app_here&lt;br /&gt;
&lt;br /&gt;
ofbset -fb /dev/fb1 -pos 0 0 -size 0 0 -mem 0 -en 0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What it does:&lt;br /&gt;
* allocates OMAP DSS layer, asks video output to be 800x480 at position 0,0 (could set it to 640x480 at 80,0 instead to get centered 2x scaling of 320x240). 307200 bytes of video memory are allocated for 2 320x240 16bpp screens (for doublebuffering).&lt;br /&gt;
* sets video mode to 320x240@16bpp, virtual resolution 320x480 for doublebuffering.&lt;br /&gt;
* runs your app&lt;br /&gt;
* cleans the video layer on exit&lt;br /&gt;
&lt;br /&gt;
Now the program can act as if it works with 320x240 16bpp screen.&lt;br /&gt;
&lt;br /&gt;
====LCD refresh rate====&lt;br /&gt;
The OS has a dedicated script which can change the LCD refresh rate. It must be ran with sudo:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
sudo -n /usr/pandora/scripts/op_lcdrate.sh 50&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
From code, system() function can be used for this.&lt;br /&gt;
&lt;br /&gt;
'''Note''': this doesn't mean your program has to run as root to use this (it never should!), just run the script as shown above.&lt;br /&gt;
&lt;br /&gt;
===Hardware scaling filter control===&lt;br /&gt;
The hardware scaler in pandora uses poly-phase 5-tap 8-phase filter. It is described in 15.4.2.3.4 and 15.6.1.3 sections of TRM. There are 40 coefficients programmable for both horizontal and vertical resampling (vertical resampling might also use 3 taps/24 coefficients, it depends on available pixel clock).&lt;br /&gt;
====using predefined filters====&lt;br /&gt;
Just run 'sudo /usr/pandora/scripts/op_videofir.sh &amp;lt;name&amp;gt;', where name currently can be:&lt;br /&gt;
* default - the default filter from OMAP manual&lt;br /&gt;
* none - nearest neighbor&lt;br /&gt;
====using custom filters====&lt;br /&gt;
run 'sudo /usr/pandora/scripts/op_videofir.sh &amp;lt;basename&amp;gt;', where basename* files contains coefficient table. The script will look for &amp;lt;basename&amp;gt;_h, &amp;lt;basename&amp;gt;_v3 and &amp;lt;basename&amp;gt;_v5 files for 5-tap horizontal, 3-tap vertical and 5-tap vertical configurations respectively. Pass absolute or relative path for basename with './', like './something'. The coefficients should be in a form of table like described in TRM, for example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
  0   0 128   0   0&lt;br /&gt;
 -1  13 124  -8   0&lt;br /&gt;
 -2  30 112 -11  -1&lt;br /&gt;
 -5  51  95 -11  -2&lt;br /&gt;
  0  -9  73  73  -9&lt;br /&gt;
 -2 -11  95  51  -5&lt;br /&gt;
 -1 -11 112  30  -2&lt;br /&gt;
  0  -8 124  13  -1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
For 3-tap table, first and last columns should contain zeros.&lt;br /&gt;
&lt;br /&gt;
==LEDs and Display backlight==&lt;br /&gt;
The LEDs can be controlled via '''/sys/class/leds/''', and then a file [http://www.gp32x.com/board/index.php?s=&amp;amp;showtopic=45309&amp;amp;view=findpost&amp;amp;p=673593]:&lt;br /&gt;
* pandora::sd1&lt;br /&gt;
* pandora::sd2&lt;br /&gt;
* pandora::charger&lt;br /&gt;
* pandora::power&lt;br /&gt;
* pandora::bluetooth&lt;br /&gt;
* pandora::wifi&lt;br /&gt;
* pandora::keypad_bl&lt;br /&gt;
Backlight can be controlled via '''/sys/class/backlight/'''.&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
Some things can be controlled through files in /proc/pandora/:&lt;br /&gt;
* '''/proc/pandora/cpu_mhz_max''' - if [http://www.kernel.org/pub/linux/utils/kernel/cpufreq/cpufreq.html cpufreq] is enabled, sets maximum allowed cpu clock, if not, just sets CPU clock to value supplied (echo 600 &amp;gt; /proc/pandora/cpu_mhz_max). Might also just use cpufreq parameters themselves.&lt;br /&gt;
more to come..&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Kernel]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Emulator_List&amp;diff=10125</id>
		<title>Emulator List</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Emulator_List&amp;diff=10125"/>
		<updated>2012-04-18T16:14:09Z</updated>

		<summary type="html">&lt;p&gt;Notaz: fix wrong version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''These lists were last updated on 2011-10-08 to include the latest files from [http://apps.open-pandora.org/cgi-bin/viewarea.pl?Emulators Pandora Apps], the [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,5 File Archive], the [http://repo.openpandora.org/?page=all&amp;amp;s=new Repo], and the [[Emulator list#Forums|community forums]]. For other software lists on the wiki, see [[Software projects]] and [[Games]].''&lt;br /&gt;
&lt;br /&gt;
If different versions of an [[emulator]] were released, the listed &amp;quot;release date&amp;quot; is from the most recent one.&lt;br /&gt;
&lt;br /&gt;
Please click on the little squares to sort by different categories.&lt;br /&gt;
&lt;br /&gt;
To read a usage guide for several emulators, download [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,5,404 this guide].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Released emulators==&lt;br /&gt;
&lt;br /&gt;
Entry colors only denote compatibility and speed; interface and features are not taken into account.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; text-align: center;&amp;quot;&lt;br /&gt;
!Quality&lt;br /&gt;
!Description&lt;br /&gt;
|- style=&amp;quot;background: #81BEF7&amp;quot;&lt;br /&gt;
|Perfect&lt;br /&gt;
|Emulators with a '''blue''' background, for all intents and purposes, work perfectly.  Virtually every game runs at full speed, and ones that don't come close.  No overclocking required.  Practically no compatibility issues, with the possible exception of extremely obscure hardware tricks or addons.&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Fantastic&lt;br /&gt;
|Emulators with a '''green''' background work very well.  A lot of games run great at or close to 500Mhz, though some issues do exist.  Little overclocking is required.  Compatibility issues are minimum.&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|Decent&lt;br /&gt;
|Emulators with a '''yellow''' background have issues.  Some games are playable, and a few do run full speed, but overclocking is typically needed.  Compatibility issues may be considerable.  This could also represent emulators with great compatibility, but low speed (or vice versa).&lt;br /&gt;
|- style=&amp;quot;background: #F7BE81&amp;quot;&lt;br /&gt;
|Bad&lt;br /&gt;
|Emulators with an '''orange''' background do not run well.  Few games are playable.  Overclocking is mandatory.  There may be lots of compatibility issues as well.&lt;br /&gt;
|- style=&amp;quot;background: #F78181&amp;quot;&lt;br /&gt;
|Poor&lt;br /&gt;
|Emulators with a '''red''' background are worthless.  No games are playable at 500Mhz, and you have to overclock very high to see a difference.  Full speed is out of the question.  Compatibility is likely nonexistent.  This is test release territory.&lt;br /&gt;
|-&lt;br /&gt;
|N/A&lt;br /&gt;
|Emulators with a '''white''' background do not have enough information about them.  Please try them out and add to this page!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- To add a color to an entry, simple replace &amp;quot;#xxxxxx&amp;quot; with these numbers;&lt;br /&gt;
Blue: #81BEF7&lt;br /&gt;
Green: #90FF90&lt;br /&gt;
Yellow: #F3F781&lt;br /&gt;
Orange: #F7BE81&lt;br /&gt;
Red: #F78181&lt;br /&gt;
Leave it at #xxxxxx for white; invalid values do not change color. --&amp;gt;&lt;br /&gt;
''If you have tried an emulator which has an uncoloured background, please add the appropriate background colour based on the legend to reflect the status of the emulator.  You may add a statement in the notes if you feel that it's necessary.''&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse; text-align: center; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
! Emulated System&lt;br /&gt;
! Project Name&lt;br /&gt;
! Release Date &amp;lt;small&amp;gt;(YYYY-MM-DD)&amp;lt;/small&amp;gt;&lt;br /&gt;
! Download&lt;br /&gt;
! Authored or Ported By&lt;br /&gt;
! &amp;lt;span title=&amp;quot;Compatibility List&amp;quot;&amp;gt;C&amp;lt;/span&amp;gt;&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
! &amp;lt;span title=&amp;quot;Compression Support&amp;quot;&amp;gt;CS&amp;lt;/span&amp;gt;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&lt;br /&gt;
! Notes&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Various{{HideableNotes|&amp;lt;br/&amp;gt;Atari Lynx, Bandai Wonderswan, GBA, GB/C, Sega Game Gear, Sega Master System, PC Engine/CD, NES, Virtual Boy, Neo Geo Pocket Colour}}&lt;br /&gt;
|Mednafen 0.9.17.r3&lt;br /&gt;
|2011-07-13&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=package.mednafen-pandora.r3 Repo]&lt;br /&gt;
|pder&lt;br /&gt;
|&lt;br /&gt;
|zip, [http://boards.openpandora.org/index.php?/topic/4047-tutorial-how-to-save-space-on-turbo-cdpc-engine-cd-games/ ogg]&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/59533-mednafen-0-9-17-1-wip/page__gopid__950099&amp;amp;#entry950099 Discussion]  GBA and VB don't run fullspeed.&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Acorn RISC-PC&lt;br /&gt;
|[[pandrpcemu]] ('''beta''')&lt;br /&gt;
|2011-05-28&lt;br /&gt;
|[http://www.pokenet.co.uk/misc/files.pandora/pandrpcemu.pnd Download]  [http://repo.openpandora.org/?page=detail&amp;amp;app=pandrpcemu Repo]&lt;br /&gt;
|hideki&lt;br /&gt;
|&lt;br /&gt;
|None&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/3762-pandrpcemu-beta-acorn-risc-pc/ Discussion]&amp;lt;br /&amp;gt;Also available natively (32-bit RO5) under [[Software projects#Unreleased software (&amp;quot;Projects Under Development&amp;quot;)|Software projects]]&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Amiga 500&lt;br /&gt;
|[[UAE4ALL]] 1.1.1.19 &amp;amp; 1.1.1.19a&lt;br /&gt;
|2011-05-15&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=uae4all Main version]&lt;br /&gt;
[http://repo.openpandora.org/?page=detail&amp;amp;app=uae4all_nubs Alternate version]&lt;br /&gt;
|Pickle, john4p, Notaz, tuki_cat, et al.&lt;br /&gt;
|[http://spreadsheets.google.com/pub?key=0AuBR5X_s_5_idG92ZVQ5cEs4ZEhYTm5sSjFIcl83U2c&amp;amp;hl=en&amp;amp;gid=0 GD]&lt;br /&gt;
|gzip&lt;br /&gt;
|&amp;quot;Alternate version&amp;quot; has working nubs but unstable video sync. [http://www.gp32x.com/board/index.php?/topic/54915-uae4all-additions/page__view__findpost__p__949095 Discussion] [http://www.gp32x.com/board/index.php?/topic/54915-uae4all-additions/page__view__findpost__p__945563 Readme (tutorial)]. {{HideableNotes|Since v1.1.1.19, conf files not compatible with prior versions.}}&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|Amiga 1200&lt;br /&gt;
|[[P-UAE]]&lt;br /&gt;
|2010-06-06&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/puae.inf Apps] [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,86 Archive]&lt;br /&gt;
|Gnostic&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|Amiga&lt;br /&gt;
|[[pandeuae]] ('''beta''')&lt;br /&gt;
|2011-05-09&lt;br /&gt;
|[http://www.hidnet.org.uk/pandeuae.pnd Download]&lt;br /&gt;
|hideki&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/3350-euae-port/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #81BEF7&amp;quot;&lt;br /&gt;
|Amstrad CPC&lt;br /&gt;
|[[Pandora-CAP32]]&lt;br /&gt;
|2010-06-27&lt;br /&gt;
|[http://zx81.zx81.free.fr/public/pandora/cap32/pandora-cap32-v1.1.0-bin.zip Download] [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,115 Archive]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|gzip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54801-pandora-cap32-v1-1-0/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Apple II&lt;br /&gt;
|[[LinApple]] 1.3.5.0&lt;br /&gt;
|2011-09-13&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=linapple-jerryblade-042011 Repo]&lt;br /&gt;
|JerryBlade, CFWhitman&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Discussion: [http://www.gp32x.com/board/index.php?/topic/59229-apple-emulator-for-pandora/page__view__findpost__p__957512 GP32X] [http://boards.openpandora.org/index.php?/topic/2490-apple-ii-emulator/ OP]&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Arcade (laserdisc)&lt;br /&gt;
|[[Daphne]] v1.0.0.3 &lt;br /&gt;
|2011-08-14&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=daphne-daphne-25097 Repo]&lt;br /&gt;
|mcobit&lt;br /&gt;
|&lt;br /&gt;
|[http://winff.org/html_new/ Bitrate]&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/4852-daphne-wip/ Discussion]  {{HideableNotes|Use [http://winff.org/html_new/ WinFF] to re-encode your video files to a lower bitrate if necessary, as doing so will improve speed and shrink the file.  Faster SD cards also improve speed greatly.}}&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|Arcade&lt;br /&gt;
|[[MAME]] v0.106 &lt;br /&gt;
|2010-05-29&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/mame106.pnd.inf Apps]  [http://repo.openpandora.org/?page=detail&amp;amp;app=mame.cosam.106 Repo]&lt;br /&gt;
|SteveM&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|{{HideableNotes|Runs more games than MAME4ALL, but at a slower speed.}}&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Arcade&lt;br /&gt;
|[[MAME4All]] v2.5b7&lt;br /&gt;
|2010-09-07&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,73,200 Archive]  [http://repo.openpandora.org/?page=detail&amp;amp;app=mame4all.cosam.2.5-beta7 Repo]&lt;br /&gt;
|SteveM, Franxis&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/56188-mame4all-beta/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Arcade&lt;br /&gt;
|SDLMAME v.110&lt;br /&gt;
|2010-06-30&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,73,106 Archive]&lt;br /&gt;
|?&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|Use MAME4ALL instead, this is slow.&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Atari 520&lt;br /&gt;
|PAtari v0.1&lt;br /&gt;
|2009-04-03&lt;br /&gt;
|[http://www.pandorasource.de/download.php?view.4 Download]&lt;br /&gt;
|cpasjuste&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
|Atari 800&lt;br /&gt;
|Atari800&lt;br /&gt;
|2011-08-06&lt;br /&gt;
|[http://ompldr.org/vOXUxYQ/atari800.pnd.zip Download]&lt;br /&gt;
|StreaK&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/60165-atari-800-emulator-almost-final/ Discussion]  {{HideableNotes|Emulates the 800, 800XL, 130XE, and 5200 platforms.}}&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Atari 8-Bit&lt;br /&gt;
|Pandora-Atari&lt;br /&gt;
|2010-08-04&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/atari-1.1.0.inf Apps]  [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,173 Archive]  &lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/55724-pandora-atari-atari-8001305200-emulator-for-pandora-v110/ Discussion] {{HideableNotes|Emulates the 800, 800XL, 130XE, and 5200 platforms.}}&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Atari Lynx&lt;br /&gt;
|[[Handy]]&lt;br /&gt;
|2010-06-18&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=handy.cosam.0.5.0.0 Repo]&lt;br /&gt;
|SteveM&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54220-handy/ Discussion]  {{HideableNotes|Do not turn on the FPS counter, or else the emulator will slow down dramatically.}}&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Atari ST&lt;br /&gt;
|Hatari 1.0.3.2&lt;br /&gt;
|2011-08-02&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=hatari.skeezix.pkg Repo]&lt;br /&gt;
|Skeezix&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/58088-hatari-atari-st-emu-140-released/page__view__findpost__p__934671 Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Atari VCS 2600&lt;br /&gt;
|[[Stella]]&lt;br /&gt;
|2010-05-07&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/Stella312a.inf Apps]  [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,53 Archive]&lt;br /&gt;
|Skeezix&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Atari VCS 2600&lt;br /&gt;
|Pandora-2600 ([[Stella]])&lt;br /&gt;
|2010-07-11&lt;br /&gt;
|[http://zx81.zx81.free.fr/public/pandora/2600/pandora-2600-v1.1.0-pnd.zip Download]  [http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/2600-1.1.0.inf Apps]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54934-pandora-2600-atari-2600-emulator-for-pandora-v110/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Atari VCS 2600&lt;br /&gt;
|[[Stella]] &lt;br /&gt;
|2011-08-03&lt;br /&gt;
|[http://ompldr.org/vOXF0dQ/stella.pnd Download]&lt;br /&gt;
|StreaK&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/60123-stella-atari-2600-beta-in-pnd/ Discussion]. {{HideableNotes|PAL games don't run.}}&lt;br /&gt;
|-&lt;br /&gt;
|Atari VCS 2600&lt;br /&gt;
|[[Stella]] 3.4.2.2&lt;br /&gt;
|2011-10-06&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=stella-svn Repo]&lt;br /&gt;
|Lomaxx&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Atari VCS 7800&lt;br /&gt;
|Pandora-7800 v1.1.0&lt;br /&gt;
|2010-07-11&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,146 Archive]  [http://zx81.zx81.free.fr/public/pandora/7800/pandora-7800-v1.1.0-pnd.zip Download]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/55189-pandora-7800-atari-7800-emulator-for-pandora-v110/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Colecovision&lt;br /&gt;
|[[Colem]]&lt;br /&gt;
|2010-05-29&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/colem_alpha.inf Apps]  [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,70 Archive]  [http://repo.openpandora.org/?page=detail&amp;amp;app=colem.skeezix Repo]&lt;br /&gt;
|Skeezix&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Colecovision&lt;br /&gt;
|[[Pandora Colem]]&lt;br /&gt;
|2010-06-30&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/colem-1.1.0.inf Apps]  [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,129 Archive]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/60164-colem-port-of-zx81-slightly-modified/ Discussion for modified version (no PND)]&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Commodore 64&lt;br /&gt;
|[[Vice]]&lt;br /&gt;
|2010-03-25&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/ViceX64.inf Apps] [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,46 Archive]&lt;br /&gt;
|Pickle&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|{{HideableNotes|Very good emulation, deactivate wrap mode in speed seetings if you suffer sound problems}}&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Commodore (Other)&lt;br /&gt;
|[[Vice]]&lt;br /&gt;
|2010-03-25&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/ViceMisc.inf Apps] [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,47 Archive]&lt;br /&gt;
|Pickle&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|{{HideableNotes|Emulates the CBM2, C128, PET, Plus4, and VIC platforms.}}&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|GPH GP2X/Wiz&lt;br /&gt;
|[[Ginge]]&lt;br /&gt;
|2010-08-16&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=package.ginge.notaz Repo]&lt;br /&gt;
|Notaz&lt;br /&gt;
|&lt;br /&gt;
|None&lt;br /&gt;
|{{HideableNotes|Not really an emulator. [http://www.gp32x.com/board/index.php?/topic/55980-ginge/page__view__findpost__p__913442 DO NOT run from root].  To get rid of the default blur filter, use [http://www.gp32x.com/board/index.php?/topic/57179-pandora-emulators-vs-gp2xwiz-emulators/page__view__findpost__p__923471 this solution].}}&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|HP-48&lt;br /&gt;
|[[Pandora-X48]]&lt;br /&gt;
|2010-06-17&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,113,96 Archive]  [http://zx81.zx81.free.fr/serendipity/index.php?/categories/129-HP-48 Download]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Emulates a calculator. [http://www.gp32x.com/board/index.php?/topic/54482-x48/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Macintosh 68K&lt;br /&gt;
|Basilisk II&lt;br /&gt;
|2010-12-15&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?app=core&amp;amp;module=attach&amp;amp;section=attach&amp;amp;attach_id=512 Download]  [http://www.mediafire.com/?ue5eyole855fyul 2]&lt;br /&gt;
|dgame&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/56900-basilisk-ii-pnd-68k-macintosh-emulator/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Mattel Intellivision&lt;br /&gt;
|[[Jzintv]]&lt;br /&gt;
|2010-09-02 &lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/jzintv.inf Apps]&lt;br /&gt;
|WizardStan&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/56426-jzintv/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|MSX&lt;br /&gt;
|[[Pandora-MSX]]&lt;br /&gt;
|2010-06-26&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/msx-1.1.1.inf Apps]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|zip, gzip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54775-pandora-msx-v1-1-0/ Discussion]  {{HideableNotes|Only disk images may be gzippped, and if they are, they cannot be written to.}}&lt;br /&gt;
|- &lt;br /&gt;
|NEC PC-9801&lt;br /&gt;
|[[Xnp2]]&lt;br /&gt;
|2011-05-01&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,393 Archive]  [http://apps.openpandora.org/cgi-bin/viewapp.pl?/Emulator/xnp2.inf Apps]  [http://www.mediafire.com/?57qer2aud0e8p9y Download]&lt;br /&gt;
|quews (port)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.youtube.com/watch?v=Bd3a-duBfdU Video]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|NEC PC Engine&lt;br /&gt;
|[[Pandora HuGo]]&lt;br /&gt;
|2010-06-28&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/hugo-1.1.0.inf Apps]  [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,117 Archive]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54833-hugo-pandora-v1-1-0/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|NEC PC Engine&lt;br /&gt;
|Temper (alpha)&lt;br /&gt;
|2011-07-25&lt;br /&gt;
|[http://exophase.devzero.co.uk/temper.pnd Download]&lt;br /&gt;
|Exophase&lt;br /&gt;
|&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/4047-tutorial-how-to-save-space-on-turbo-cdpc-engine-cd-games/ ogg]&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/4621-temper-split-from-other-thread/ Discussion]  Also supports the SuperGrafx.&lt;br /&gt;
|- style=&amp;quot;background: #81BEF7&amp;quot;&lt;br /&gt;
|NES&lt;br /&gt;
|[[GPFCE-GP2X]]&lt;br /&gt;
|2010-10-13&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,224 Archive]  [http://repo.openpandora.org/?page=detail&amp;amp;app=gpfcegp2x Repo]&lt;br /&gt;
|notaz&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|{{HideableNotes|The GP2X version of GPFCE, packaged into a PND with Ginge.}}&lt;br /&gt;
|- style=&amp;quot;background: #81BEF7&amp;quot;&lt;br /&gt;
|NES&lt;br /&gt;
|[[GPFCE]]&lt;br /&gt;
|2010-05-29&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,72 Archive]  [http://apps.openpandora.org/cgi-bin/viewapp.pl?/Emulator/gpfce.inf Apps]&lt;br /&gt;
|Notaz, Pickle&lt;br /&gt;
|[[Compat:Emulator_Compatibility_-_NES | W]]&lt;br /&gt;
|zip&lt;br /&gt;
|{{HideableNotes|Sound works if you set the rate to 44000Hz in the options.  Forces a 2xsai like filter.}}&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|NES&lt;br /&gt;
|[[nesemu]]&lt;br /&gt;
|2010-05-29&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,71 Archive]  [http://apps.openpandora.org/cgi-bin/viewapp.pl?/Emulator/nesemu.inf Apps]&lt;br /&gt;
|Pickle&lt;br /&gt;
|[[Compat:Emulator_Compatibility_-_NES | W]]&lt;br /&gt;
|&lt;br /&gt;
|[http://code.google.com/p/nesemu/ Website] Seems to only run at 40fps.&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|NES&lt;br /&gt;
|[[Nestopia]]&lt;br /&gt;
|2011-08-01&lt;br /&gt;
|[http://ompldr.org/vOXB2Mg/nestopia_openpandora_streak.zip Download]&lt;br /&gt;
|StreaK&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/60112-nestopia-for-openpandora-beta/ Discussion] {{HideableNotes|Emulator focus is accuracy.  Very high compatibility at a cost of speed.  Not a PND.}}&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|Nintendo 64&lt;br /&gt;
|[[Mupen64Plus]] 1.5.r20110615.2&lt;br /&gt;
|2011-06-16&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=mupen64plus Repo]&lt;br /&gt;
|Ari64, Adventus, JayFoxRox, sebt3, et al.&lt;br /&gt;
|[http://tinyurl.com/6ccuqmc GD]&lt;br /&gt;
|zip, 7z, bzip2&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/53683-mupen64plus/page__view__findpost__p__951543 Discussion]  Compatibility list is mostly outdated. {{HideableNotes|To get good auto-frameskip, switch to gles2n64 0.0.5, set frame render rate 2, auto frameskip 1 -[http://www.gp32x.com/board/index.php?/topic/53683-mupen64plus/page__view__findpost__p__946705]}}&lt;br /&gt;
|- style=&amp;quot;background: #F78181&amp;quot;&lt;br /&gt;
|Nintendo DS&lt;br /&gt;
|[[Desmume]]&lt;br /&gt;
|2011-08-04&lt;br /&gt;
|[http://www.2shared.com/file/wxnc3MRT/desmume097.html Download]&lt;br /&gt;
[http://www.mediafire.com/?8gvvhqz3e2zkxzj 2]&lt;br /&gt;
|notaz&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/4744-nintendo-ds-emulator/page__view__findpost__p__82779 Discussion] Not meant for entertainment; was ported only to shut people up.&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|Nintendo GBA/GBC/GB&lt;br /&gt;
|[[VisualBoyAdvance]]&lt;br /&gt;
|2010-12-08&lt;br /&gt;
|[http://apps.openpandora.org/cgi-bin/viewapp.pl?/Emulator/vba-1.7.2-0.inf Apps]  [http://www.mediafire.com/?7qbxlnp0h2isokf Download]&lt;br /&gt;
|EvilDragon, SteveM&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/57808-visualboyadvance-v1-7-2-1/page__p__929521&amp;amp;#entry929521 Discussion]. Runs GB/C well; GBA is slow&lt;br /&gt;
|- style=&amp;quot;background: #81BEF7&amp;quot;&lt;br /&gt;
|Nintendo GBA&lt;br /&gt;
|[[gpSP]]&lt;br /&gt;
|2011-09-08&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=package.gpsp.notaz Repo]&lt;br /&gt;
|Exophase, notaz&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|Discussion: [http://www.gp32x.com/board/index.php?/topic/60219-gba-emulator-that-you-can-adjust-the-screen-size/page__view__findpost__p__957136 GP32X] [http://boards.openpandora.org/index.php?/topic/5226-gpsp-for-pandora-from-notaz/ OP]. Zipped ROMs only.  Now a native port with fullscreen scaling.&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Nintendo GBA&lt;br /&gt;
|[[gpSP]] (Ginged)&lt;br /&gt;
|2010-10-13&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,199 Archive]&lt;br /&gt;
|Exophase, notaz&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://gpsp-dev.blogspot.com/ Website]. {{HideableNotes|Runs through [[Ginge]], only zipped ROMs.  [http://www.gp32x.com/board/index.php?/topic/58722-im-looking-for-a-gba-emulator-without-blurry-upscaling/ No fullscreen scaling].}}&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Nintendo GB/GBC&lt;br /&gt;
|[[GnuBoy]] 1.0.5Svn&lt;br /&gt;
|2010-11-10&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,207 Archive]  [http://repo.openpandora.org/?page=detail&amp;amp;app=sdlgnuboy Repo]&lt;br /&gt;
|Pickle, EvilDragon&lt;br /&gt;
|&lt;br /&gt;
|zip, gzip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/56916-gnuboy-updated/ Discussion] [http://www.gp32x.com/board/index.php?/topic/57436-gnuboy-v1-0-5-svn-released/ 2] uses [[PickleLauncher]]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Nintendo GB/GBC&lt;br /&gt;
|[[GnGB]] ('''beta''')&lt;br /&gt;
|2010-10-04&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?app=core&amp;amp;module=attach&amp;amp;section=attach&amp;amp;attach_id=482 Download]  [http://www.mediafire.com/?7qbxlnp0h2isokf 2]&lt;br /&gt;
|dgame (port)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/56886-gngb-pnd-game-boy-and-game-boy-color-emulator/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Nintendo Pokémon mini&lt;br /&gt;
|[[Pokémini]] 0.4.4&lt;br /&gt;
|2011-04-13&lt;br /&gt;
|[http://apps.openpandora.org/cgi-bin/viewapp.pl?/Emulator/pokemini.inf Apps]  [http://www.mediafire.com/?05g9s8w780mt58g Download]&lt;br /&gt;
|Wally&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/2898-pokemini-emulator-pokemon-mini Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Oric-1/Atmos&lt;br /&gt;
|[[PandOricutron]]&lt;br /&gt;
|2010-06-16&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/PandOricutron_108.inf Apps]&lt;br /&gt;
|torpor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54260-pandoricutron-1-0-8/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|PDP-11&lt;br /&gt;
|[[SIMH PDP-11]]&lt;br /&gt;
|2010-05-28&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,83 Archive]  [http://repo.openpandora.org/?page=detail&amp;amp;app=msimh.cosam.3.8.0.0 Repo]&lt;br /&gt;
|SteveM&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Philips Odyssey 2&lt;br /&gt;
|[[O2EM]] 1.18-1&lt;br /&gt;
|2010-08-21&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,186 Archive]  [http://repo.openpandora.org/?page=detail&amp;amp;app=o2em Repo]&lt;br /&gt;
|Hitnrun, Daniel Boris&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
|SAM Coupé&lt;br /&gt;
|[[SimCoupe]]&lt;br /&gt;
|2011-08-19&lt;br /&gt;
|[http://ompldr.org/vOXlsaw/simcoupe.pnd.zip Download]&lt;br /&gt;
|StreaK&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Discussion: [http://www.gp32x.com/board/index.php?/topic/60220-simcoupe-a-sam-coupe-emulator-beta/ GP32X] [http://boards.openpandora.org/index.php?/topic/4947-simcoupe-a-sam-coupe-emulator-beta/ OP]&lt;br /&gt;
|- style=&amp;quot;background: #81BEF7&amp;quot;&lt;br /&gt;
|Sega Genesis, CD, 32X, Master System&lt;br /&gt;
|[[PicoDrive]] 1.80&lt;br /&gt;
|2010-09-19&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=package.picodrive.notaz Repo]&lt;br /&gt;
|Notaz&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/56713-picodrive-1-80/ Discussion] ([http://www.gp32x.com/board/index.php?/topic/53899-picodrive-released/ old]). {{HideableNotes|Master System support is preliminary. Not all 32X games run.}}&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Sega Master System &amp;amp; Game Gear&lt;br /&gt;
|[[Dega]] v1.16-4&lt;br /&gt;
|2010-08-15&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=dega.cosam.1.16.0.2 Repo]&lt;br /&gt;
|SteveM&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54914-dega/ Discussion]{{HideableNotes|Press R+number to save, L+number to load, Pandora key to quit}}&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Sega Master System&lt;br /&gt;
|PSMS v0.1&lt;br /&gt;
|2009-04-03&lt;br /&gt;
|[http://www.pandorasource.de/download.php?view.10 Download]&lt;br /&gt;
|cpasjuste&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #F7BE81&amp;quot;&lt;br /&gt;
|Sega Saturn&lt;br /&gt;
|Yabause r2660&lt;br /&gt;
|2011-08-06&lt;br /&gt;
|[http://hotfile.com/dl/126054899/6ca83f7/yabause-r2660.pnd.html Download]  [http://www.mediafire.com/?fmbn5ij2t3mucjh 2]&lt;br /&gt;
|Ari64&lt;br /&gt;
|[https://spreadsheets.google.com/spreadsheet/ccc?key=0Aq4SN3wYVIxgdHB4Z2hHcE9fQ3lTaTVMelEyZVBsVFE GD]&lt;br /&gt;
|&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/4583-yabause/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|SNES&lt;br /&gt;
|[[SNES9X4P]] 1.39ff - v20111205-2&lt;br /&gt;
|2011-12-06&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=snes9x4p_ivanovic Repo]&lt;br /&gt;
|HideableNotes|Ivanovic, Skeezix, SiENcE (Dingoo)&lt;br /&gt;
|&lt;br /&gt;
|7z&lt;br /&gt;
|Dingoo Snes9x port. [http://www.gp32x.com/board/index.php?/topic/55378-snes9x4d4p-another-new-build-now-with-hi-res-and-new-rom-picker/page__view__findpost__p__958887] uses [[PickleLauncher]]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|SNES&lt;br /&gt;
|SNES9X v0.2&lt;br /&gt;
|2009-04-03&lt;br /&gt;
|[http://www.pandorasource.de/download.php?view.7 Download]&lt;br /&gt;
|cpasjuste (port)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|SNES&lt;br /&gt;
|[[PocketSNES]] ('''beta''') 0.1&lt;br /&gt;
|2010-08-08&lt;br /&gt;
|[http://www.rangelreale.com/pandora/pocketsnes_hack_0.1.pnd Download]&lt;br /&gt;
|Hitnrun (port)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/55796-pocketsnes-hack/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #81BEF7&amp;quot;&lt;br /&gt;
|SNK Neo Geo&lt;br /&gt;
|[[GnGeo]] 0.8.3&lt;br /&gt;
|2011-04-20&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=gngeopnd-pepone Repo]&lt;br /&gt;
|Pepone, Manolis&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|Discussion: [http://www.gp32x.com/board/index.php?/topic/59207-gngeo-0-8-2/page__view__findpost__p__946739 GP32X] [http://boards.openpandora.org/index.php?/topic/2936-gngeo-083/ OP]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|SNK Neo Geo&lt;br /&gt;
|NeoGeo SDL&lt;br /&gt;
|2009-04-03&lt;br /&gt;
|[http://www.pandorasource.de/download.php?view.13 Download]&lt;br /&gt;
|Cpasjuste&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SNK NeoGeo Pocket&lt;br /&gt;
|NeoPop&lt;br /&gt;
|2010-07-15&lt;br /&gt;
|[http://www.pdroms.de/files/1969/ Download]&lt;br /&gt;
|Cpasjuste&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/58848-neopop-ngpc-emulator-released/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|SNK Neo Geo Pocket&lt;br /&gt;
|[[Race]]&lt;br /&gt;
|2010-06-20&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/race10.inf Apps]&lt;br /&gt;
|Hooka&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54187-race-a-neo-geo-pocket-color-emulator Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #F7BE81&amp;quot;&lt;br /&gt;
|Sony Playstation&lt;br /&gt;
|[[PSX4Pandora]]&lt;br /&gt;
|2010-11-16&lt;br /&gt;
|[http://www.zodttd.com/downloads/psx4pandora10b5.pnd Download]&lt;br /&gt;
|ZodTTD&lt;br /&gt;
|[http://spreadsheets.google.com/pub?key=0AkBB6e4g1lGtdFVwODhsQzdlWVdrMTRKdDFXa1laZ2c&amp;amp;hl=en_GB&amp;amp;output=html GD]&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/57522-psx4pandora-1-0b5/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Sony Playstation&lt;br /&gt;
|[[PCSX-ReARMed]] r14&lt;br /&gt;
|2012-03-04&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=package.pcsx_rearmed.notaz Repo] [http://notaz.gp2x.de/releases/pcsxr/pcsx_rearmed_r14.pnd Download]&lt;br /&gt;
|notaz&lt;br /&gt;
|[https://spreadsheets.google.com/ccc?key=0ArSWWAWRjErldHZVZlFxY0tBVnRRNXM5U3ZqWFNuN0E&amp;amp;hl=en#gid=0 GD]&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/4046-tutorial-how-to-save-space-on-ps1-games-without-ripping-video-or-music/ pbp]&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/6546-pcsx-rearmed-r13-with-a-new-gpu/ Discussion] [http://www.gp32x.com/board/index.php?/topic/57973-pcsx-rearmed/page__view__findpost__p__955679 old thread]&lt;br /&gt;
|- &lt;br /&gt;
|Thomson TO8D&lt;br /&gt;
|[[TO8_PND]]&lt;br /&gt;
|2011-11-15&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=TO8D_PND Repo]&lt;br /&gt;
|SladeCraven&lt;br /&gt;
|&lt;br /&gt;
|None&lt;br /&gt;
|Emulates the Thomson TO8/TO8D computer. [http://boards.openpandora.org/index.php?/topic/6076-thomson-to8-emulator-beta-version-040/page__fromsearch__1 Discussion]&lt;br /&gt;
|- &lt;br /&gt;
|TI89/TI89 Titanium / TI92/TI92+ / V200PLT&lt;br /&gt;
|[[TiEmu]]&lt;br /&gt;
|2011-09-10&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=tiemu-6232 Repo]&lt;br /&gt;
|Kazuki&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Emulates a calculator.&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|TI-99&lt;br /&gt;
|Pandora-TI99 ([[TI99Sim]])&lt;br /&gt;
|2010-07-21&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,164 Archive]  [http://zx81.zx81.free.fr/serendipity/index.php?/categories/147-TI99 Download]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TI-92&lt;br /&gt;
|[[XTiger]]&lt;br /&gt;
|2010-06-30&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/ti92-1.1.0.inf Apps]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Emulates a calculator.&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|TRS-80&lt;br /&gt;
|[[SDLTRS]]&lt;br /&gt;
|2011-08-03&lt;br /&gt;
|[http://www.mediafire.com/download.php?72etxpjqaosa11b Download]&lt;br /&gt;
|Blue Protoman&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|I give no support to this!  This is a hackjob port!&lt;br /&gt;
|- style=&amp;quot;background: #81BEF7&amp;quot;&lt;br /&gt;
|Vectrex&lt;br /&gt;
|[[Pandora-Vectrex]] v1.1.1&lt;br /&gt;
|2011-03-06&lt;br /&gt;
|[http://zx81.zx81.free.fr/public/pandora/vectrex/pandora-vectrex-v1.1.1-pnd.zip Download]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/58846-pandora-vectrex-vectrex-emulator-for-pandora-v110/page__view__findpost__p__942010 Discussion] Download game overlays [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,5,355 here].&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|x86 DOS&lt;br /&gt;
|[[DOSBox]] v0.74svn&lt;br /&gt;
|2010-11-09&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,54 Archive]&lt;br /&gt;
|Pickle&lt;br /&gt;
|[[DOSBox compatibility list|W]]&lt;br /&gt;
|None&lt;br /&gt;
|Discussion: [http://www.gp32x.com/board/index.php?/topic/57424-dosbox/ GP32Xa] [http://www.gp32x.com/board/index.php?/topic/53942-post-your-dosbox-successes-here/ GP32Xb] [http://boards.openpandora.org/index.php?/topic/2346-dosbox-room-for-optimization/ OPa] [http://boards.openpandora.org/index.php?/topic/2063-dosbox/ OPb]. [http://www.dosbox.com/comp_list.php General compatibility list]&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|x86 DOS&lt;br /&gt;
|[[DOSBox EX]]&lt;br /&gt;
|2011-08-16&lt;br /&gt;
|[http://ompldr.org/vOXhhMA/dosbox_ex.pnd.zip Download]&lt;br /&gt;
|StreaK&lt;br /&gt;
|&lt;br /&gt;
|None&lt;br /&gt;
|Discussion: [http://www.gp32x.com/board/index.php?/topic/60175-dosbox-ex-beta/ GP32X] [http://boards.openpandora.org/index.php?/topic/4855-dosbox-ex/ OP]&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|x86 PC&lt;br /&gt;
|[[Qemu for Pandora]]&lt;br /&gt;
|2012-03-02&lt;br /&gt;
|[http://www.openpandora.org/rebirth/qemu.pnd Download]&lt;br /&gt;
|IngoReis, mcobit&lt;br /&gt;
|&lt;br /&gt;
|None&lt;br /&gt;
|Discussion: [http://boards.openpandora.org/index.php?/topic/7004-qemu-for-pandora-for-rebirth-competition OP-Boards]&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|x86 Windows 3.1 r2, r1&lt;br /&gt;
|[[WinBox]] ('''beta''')&lt;br /&gt;
|2010-12-15&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=winbox-1 Repo]  [http://urjaman.dyndns.info/winbox_r2.pnd Download]&lt;br /&gt;
|urjaman&lt;br /&gt;
|&lt;br /&gt;
|None&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54985-win-3-1-via-dosbox-at-native-resolution/page__view__findpost__p__887198 Discussion] {{HideableNotes|Modified DOSBox to run Windows 3.1 at Pandora's native resolution}}&lt;br /&gt;
|-&lt;br /&gt;
|ZX-80 &amp;amp; ZX-81&lt;br /&gt;
|sz81&lt;br /&gt;
|2011-08-19&lt;br /&gt;
|[http://ompldr.org/vOXk0eA/sz81.pnd.zip Download]&lt;br /&gt;
|StreaK&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|ZX Spectrum&lt;br /&gt;
|[[Fuse]]&lt;br /&gt;
|2010-06-24&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/fuse-0.9.0.inf Apps]  [http://repo.openpandora.org/?page=detail&amp;amp;app=fuse.cosam.0.10.0.2 Repo]&lt;br /&gt;
|SteveM&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|ZX Spectrum&lt;br /&gt;
|[[Zx Pandy]] v3.2.1.4&lt;br /&gt;
|2011-04-12&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=zx_pandy.dave18.001 Repo]&lt;br /&gt;
|Dave18&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/58536-zx-pandy-released/ Discussion]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; &amp;quot;C&amp;quot; is short for compatibility list.&lt;br /&gt;
FT = Forum Topic&lt;br /&gt;
GD = Google Docs&lt;br /&gt;
W = Wiki page&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; &amp;quot;CS&amp;quot; is short for &amp;quot;Compression Support&amp;quot;.  The entries denote the formats that can be used to save space on the games.  A blank entry doesn't mean &amp;quot;none&amp;quot;, it means there's not enough info!  Please add more if you can!&lt;br /&gt;
&lt;br /&gt;
==Unreleased emulators==&lt;br /&gt;
This section includes both emulators that are actively being worked on, as well as ones that are or may be abandoned. The latter are included for historical purposes. &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse; text-align: center; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
!Emulated System&lt;br /&gt;
!Project Name&lt;br /&gt;
!Last Update&lt;br /&gt;
!Status&lt;br /&gt;
!Author/Port Author&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|Amstrad PCW&lt;br /&gt;
|Joyce / Anne emu&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/4939-any-amstrad-pcw-lovers-in-da-house/page__view__findpost__p__85612 2011-08-18]&lt;br /&gt;
|Working build&lt;br /&gt;
|StreaK&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/4939-any-amstrad-pcw-lovers-in-da-house/ Discussion]  Looking for help for testing from someone familiar with the platform.&lt;br /&gt;
|-&lt;br /&gt;
|Sega Dreamcast&lt;br /&gt;
|NullDC&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/57821-dreamcast/page__view__findpost__p__944843 2011-03-28]&lt;br /&gt;
|On hold&lt;br /&gt;
|Zezu / drkIIraziel&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?s=&amp;amp;showtopic=47065&amp;amp;view=findpost&amp;amp;p=709910] drkIIraziel says he will have time to work on it &amp;quot;[http://www.gp32x.com/board/index.php?/topic/57821-dreamcast/page__view__findpost__p__944843 after April 10]&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Nintendo SNES&lt;br /&gt;
|[[PandaSNES]]&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/43213-any-snes-fans-in-the-house/page__view__findpost__p__631020 2008-07-29]&lt;br /&gt;
|Abandoned&lt;br /&gt;
|Squidge&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?showtopic=43213]  Probably discontinued; Squidge has not been heard from for a long time.&lt;br /&gt;
|-&lt;br /&gt;
|Sony Playstation Portable&lt;br /&gt;
|Pandora-PSP&lt;br /&gt;
|[http://jannikvogel.de/2011 2011-01]&lt;br /&gt;
|Abandoned&lt;br /&gt;
|[[User:JayFoxRox|JayFoxRox]]&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?showtopic=47270]  Probably discontinued; JayFoxRox has since left the community.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
*[http://sebt3.openpandora.org/pnd/ Releases by sebt3]&lt;br /&gt;
*[http://www.hermocom.com/en/downloads/openpandora/ Releases by Hermocom]&lt;br /&gt;
*[http://rebirthofxeen.com/files/pandora/ Releases by WizardStan]&lt;br /&gt;
*[http://www.stuckiegamez.co.uk/apps/pandora/ Releases by StuckieGamez]&lt;br /&gt;
&lt;br /&gt;
===Forums===&lt;br /&gt;
The following community forums are checked when updating this page:&lt;br /&gt;
*From GP32X: [http://www.gp32x.com/board/index.php?/forum/63-news-zone-pandora/ News Zone], [http://www.gp32x.com/board/index.php?/forum/71-beta-testing-pandora/ Beta Testing] and [http://www.gp32x.com/board/index.php?/forum/64-developers-corner-pandora/ Developer's Corner]&lt;br /&gt;
*From OP: [http://boards.openpandora.org/index.php?/forum/26-software-news/ Software News] and [http://boards.openpandora.org/index.php?/forum/10-beta-testing/ Beta Testing]&lt;br /&gt;
*From GP2X.de: [http://forum.gp2x.de/viewforum.php?f=24 News] and [http://forum.gp2x.de/viewforum.php?f=59 Betatest]&lt;br /&gt;
&lt;br /&gt;
[[Category:Emulators]]&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
[[Category:List]]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Emulator_List&amp;diff=10124</id>
		<title>Emulator List</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Emulator_List&amp;diff=10124"/>
		<updated>2012-04-18T16:04:40Z</updated>

		<summary type="html">&lt;p&gt;Notaz: update rearmed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''These lists were last updated on 2011-10-08 to include the latest files from [http://apps.open-pandora.org/cgi-bin/viewarea.pl?Emulators Pandora Apps], the [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,5 File Archive], the [http://repo.openpandora.org/?page=all&amp;amp;s=new Repo], and the [[Emulator list#Forums|community forums]]. For other software lists on the wiki, see [[Software projects]] and [[Games]].''&lt;br /&gt;
&lt;br /&gt;
If different versions of an [[emulator]] were released, the listed &amp;quot;release date&amp;quot; is from the most recent one.&lt;br /&gt;
&lt;br /&gt;
Please click on the little squares to sort by different categories.&lt;br /&gt;
&lt;br /&gt;
To read a usage guide for several emulators, download [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,5,404 this guide].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Released emulators==&lt;br /&gt;
&lt;br /&gt;
Entry colors only denote compatibility and speed; interface and features are not taken into account.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; text-align: center;&amp;quot;&lt;br /&gt;
!Quality&lt;br /&gt;
!Description&lt;br /&gt;
|- style=&amp;quot;background: #81BEF7&amp;quot;&lt;br /&gt;
|Perfect&lt;br /&gt;
|Emulators with a '''blue''' background, for all intents and purposes, work perfectly.  Virtually every game runs at full speed, and ones that don't come close.  No overclocking required.  Practically no compatibility issues, with the possible exception of extremely obscure hardware tricks or addons.&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Fantastic&lt;br /&gt;
|Emulators with a '''green''' background work very well.  A lot of games run great at or close to 500Mhz, though some issues do exist.  Little overclocking is required.  Compatibility issues are minimum.&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|Decent&lt;br /&gt;
|Emulators with a '''yellow''' background have issues.  Some games are playable, and a few do run full speed, but overclocking is typically needed.  Compatibility issues may be considerable.  This could also represent emulators with great compatibility, but low speed (or vice versa).&lt;br /&gt;
|- style=&amp;quot;background: #F7BE81&amp;quot;&lt;br /&gt;
|Bad&lt;br /&gt;
|Emulators with an '''orange''' background do not run well.  Few games are playable.  Overclocking is mandatory.  There may be lots of compatibility issues as well.&lt;br /&gt;
|- style=&amp;quot;background: #F78181&amp;quot;&lt;br /&gt;
|Poor&lt;br /&gt;
|Emulators with a '''red''' background are worthless.  No games are playable at 500Mhz, and you have to overclock very high to see a difference.  Full speed is out of the question.  Compatibility is likely nonexistent.  This is test release territory.&lt;br /&gt;
|-&lt;br /&gt;
|N/A&lt;br /&gt;
|Emulators with a '''white''' background do not have enough information about them.  Please try them out and add to this page!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- To add a color to an entry, simple replace &amp;quot;#xxxxxx&amp;quot; with these numbers;&lt;br /&gt;
Blue: #81BEF7&lt;br /&gt;
Green: #90FF90&lt;br /&gt;
Yellow: #F3F781&lt;br /&gt;
Orange: #F7BE81&lt;br /&gt;
Red: #F78181&lt;br /&gt;
Leave it at #xxxxxx for white; invalid values do not change color. --&amp;gt;&lt;br /&gt;
''If you have tried an emulator which has an uncoloured background, please add the appropriate background colour based on the legend to reflect the status of the emulator.  You may add a statement in the notes if you feel that it's necessary.''&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse; text-align: center; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
! Emulated System&lt;br /&gt;
! Project Name&lt;br /&gt;
! Release Date &amp;lt;small&amp;gt;(YYYY-MM-DD)&amp;lt;/small&amp;gt;&lt;br /&gt;
! Download&lt;br /&gt;
! Authored or Ported By&lt;br /&gt;
! &amp;lt;span title=&amp;quot;Compatibility List&amp;quot;&amp;gt;C&amp;lt;/span&amp;gt;&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
! &amp;lt;span title=&amp;quot;Compression Support&amp;quot;&amp;gt;CS&amp;lt;/span&amp;gt;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&lt;br /&gt;
! Notes&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Various{{HideableNotes|&amp;lt;br/&amp;gt;Atari Lynx, Bandai Wonderswan, GBA, GB/C, Sega Game Gear, Sega Master System, PC Engine/CD, NES, Virtual Boy, Neo Geo Pocket Colour}}&lt;br /&gt;
|Mednafen 0.9.17.r3&lt;br /&gt;
|2011-07-13&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=package.mednafen-pandora.r3 Repo]&lt;br /&gt;
|pder&lt;br /&gt;
|&lt;br /&gt;
|zip, [http://boards.openpandora.org/index.php?/topic/4047-tutorial-how-to-save-space-on-turbo-cdpc-engine-cd-games/ ogg]&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/59533-mednafen-0-9-17-1-wip/page__gopid__950099&amp;amp;#entry950099 Discussion]  GBA and VB don't run fullspeed.&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Acorn RISC-PC&lt;br /&gt;
|[[pandrpcemu]] ('''beta''')&lt;br /&gt;
|2011-05-28&lt;br /&gt;
|[http://www.pokenet.co.uk/misc/files.pandora/pandrpcemu.pnd Download]  [http://repo.openpandora.org/?page=detail&amp;amp;app=pandrpcemu Repo]&lt;br /&gt;
|hideki&lt;br /&gt;
|&lt;br /&gt;
|None&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/3762-pandrpcemu-beta-acorn-risc-pc/ Discussion]&amp;lt;br /&amp;gt;Also available natively (32-bit RO5) under [[Software projects#Unreleased software (&amp;quot;Projects Under Development&amp;quot;)|Software projects]]&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Amiga 500&lt;br /&gt;
|[[UAE4ALL]] 1.1.1.19 &amp;amp; 1.1.1.19a&lt;br /&gt;
|2011-05-15&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=uae4all Main version]&lt;br /&gt;
[http://repo.openpandora.org/?page=detail&amp;amp;app=uae4all_nubs Alternate version]&lt;br /&gt;
|Pickle, john4p, Notaz, tuki_cat, et al.&lt;br /&gt;
|[http://spreadsheets.google.com/pub?key=0AuBR5X_s_5_idG92ZVQ5cEs4ZEhYTm5sSjFIcl83U2c&amp;amp;hl=en&amp;amp;gid=0 GD]&lt;br /&gt;
|gzip&lt;br /&gt;
|&amp;quot;Alternate version&amp;quot; has working nubs but unstable video sync. [http://www.gp32x.com/board/index.php?/topic/54915-uae4all-additions/page__view__findpost__p__949095 Discussion] [http://www.gp32x.com/board/index.php?/topic/54915-uae4all-additions/page__view__findpost__p__945563 Readme (tutorial)]. {{HideableNotes|Since v1.1.1.19, conf files not compatible with prior versions.}}&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|Amiga 1200&lt;br /&gt;
|[[P-UAE]]&lt;br /&gt;
|2010-06-06&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/puae.inf Apps] [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,86 Archive]&lt;br /&gt;
|Gnostic&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|Amiga&lt;br /&gt;
|[[pandeuae]] ('''beta''')&lt;br /&gt;
|2011-05-09&lt;br /&gt;
|[http://www.hidnet.org.uk/pandeuae.pnd Download]&lt;br /&gt;
|hideki&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/3350-euae-port/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #81BEF7&amp;quot;&lt;br /&gt;
|Amstrad CPC&lt;br /&gt;
|[[Pandora-CAP32]]&lt;br /&gt;
|2010-06-27&lt;br /&gt;
|[http://zx81.zx81.free.fr/public/pandora/cap32/pandora-cap32-v1.1.0-bin.zip Download] [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,115 Archive]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|gzip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54801-pandora-cap32-v1-1-0/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Apple II&lt;br /&gt;
|[[LinApple]] 1.3.5.0&lt;br /&gt;
|2011-09-13&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=linapple-jerryblade-042011 Repo]&lt;br /&gt;
|JerryBlade, CFWhitman&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Discussion: [http://www.gp32x.com/board/index.php?/topic/59229-apple-emulator-for-pandora/page__view__findpost__p__957512 GP32X] [http://boards.openpandora.org/index.php?/topic/2490-apple-ii-emulator/ OP]&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Arcade (laserdisc)&lt;br /&gt;
|[[Daphne]] v1.0.0.3 &lt;br /&gt;
|2011-08-14&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=daphne-daphne-25097 Repo]&lt;br /&gt;
|mcobit&lt;br /&gt;
|&lt;br /&gt;
|[http://winff.org/html_new/ Bitrate]&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/4852-daphne-wip/ Discussion]  {{HideableNotes|Use [http://winff.org/html_new/ WinFF] to re-encode your video files to a lower bitrate if necessary, as doing so will improve speed and shrink the file.  Faster SD cards also improve speed greatly.}}&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|Arcade&lt;br /&gt;
|[[MAME]] v0.106 &lt;br /&gt;
|2010-05-29&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/mame106.pnd.inf Apps]  [http://repo.openpandora.org/?page=detail&amp;amp;app=mame.cosam.106 Repo]&lt;br /&gt;
|SteveM&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|{{HideableNotes|Runs more games than MAME4ALL, but at a slower speed.}}&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Arcade&lt;br /&gt;
|[[MAME4All]] v2.5b7&lt;br /&gt;
|2010-09-07&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,73,200 Archive]  [http://repo.openpandora.org/?page=detail&amp;amp;app=mame4all.cosam.2.5-beta7 Repo]&lt;br /&gt;
|SteveM, Franxis&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/56188-mame4all-beta/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Arcade&lt;br /&gt;
|SDLMAME v.110&lt;br /&gt;
|2010-06-30&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,73,106 Archive]&lt;br /&gt;
|?&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|Use MAME4ALL instead, this is slow.&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Atari 520&lt;br /&gt;
|PAtari v0.1&lt;br /&gt;
|2009-04-03&lt;br /&gt;
|[http://www.pandorasource.de/download.php?view.4 Download]&lt;br /&gt;
|cpasjuste&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
|Atari 800&lt;br /&gt;
|Atari800&lt;br /&gt;
|2011-08-06&lt;br /&gt;
|[http://ompldr.org/vOXUxYQ/atari800.pnd.zip Download]&lt;br /&gt;
|StreaK&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/60165-atari-800-emulator-almost-final/ Discussion]  {{HideableNotes|Emulates the 800, 800XL, 130XE, and 5200 platforms.}}&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Atari 8-Bit&lt;br /&gt;
|Pandora-Atari&lt;br /&gt;
|2010-08-04&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/atari-1.1.0.inf Apps]  [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,173 Archive]  &lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/55724-pandora-atari-atari-8001305200-emulator-for-pandora-v110/ Discussion] {{HideableNotes|Emulates the 800, 800XL, 130XE, and 5200 platforms.}}&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Atari Lynx&lt;br /&gt;
|[[Handy]]&lt;br /&gt;
|2010-06-18&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=handy.cosam.0.5.0.0 Repo]&lt;br /&gt;
|SteveM&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54220-handy/ Discussion]  {{HideableNotes|Do not turn on the FPS counter, or else the emulator will slow down dramatically.}}&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Atari ST&lt;br /&gt;
|Hatari 1.0.3.2&lt;br /&gt;
|2011-08-02&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=hatari.skeezix.pkg Repo]&lt;br /&gt;
|Skeezix&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/58088-hatari-atari-st-emu-140-released/page__view__findpost__p__934671 Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Atari VCS 2600&lt;br /&gt;
|[[Stella]]&lt;br /&gt;
|2010-05-07&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/Stella312a.inf Apps]  [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,53 Archive]&lt;br /&gt;
|Skeezix&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Atari VCS 2600&lt;br /&gt;
|Pandora-2600 ([[Stella]])&lt;br /&gt;
|2010-07-11&lt;br /&gt;
|[http://zx81.zx81.free.fr/public/pandora/2600/pandora-2600-v1.1.0-pnd.zip Download]  [http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/2600-1.1.0.inf Apps]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54934-pandora-2600-atari-2600-emulator-for-pandora-v110/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Atari VCS 2600&lt;br /&gt;
|[[Stella]] &lt;br /&gt;
|2011-08-03&lt;br /&gt;
|[http://ompldr.org/vOXF0dQ/stella.pnd Download]&lt;br /&gt;
|StreaK&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/60123-stella-atari-2600-beta-in-pnd/ Discussion]. {{HideableNotes|PAL games don't run.}}&lt;br /&gt;
|-&lt;br /&gt;
|Atari VCS 2600&lt;br /&gt;
|[[Stella]] 3.4.2.2&lt;br /&gt;
|2011-10-06&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=stella-svn Repo]&lt;br /&gt;
|Lomaxx&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Atari VCS 7800&lt;br /&gt;
|Pandora-7800 v1.1.0&lt;br /&gt;
|2010-07-11&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,146 Archive]  [http://zx81.zx81.free.fr/public/pandora/7800/pandora-7800-v1.1.0-pnd.zip Download]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/55189-pandora-7800-atari-7800-emulator-for-pandora-v110/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Colecovision&lt;br /&gt;
|[[Colem]]&lt;br /&gt;
|2010-05-29&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/colem_alpha.inf Apps]  [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,70 Archive]  [http://repo.openpandora.org/?page=detail&amp;amp;app=colem.skeezix Repo]&lt;br /&gt;
|Skeezix&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Colecovision&lt;br /&gt;
|[[Pandora Colem]]&lt;br /&gt;
|2010-06-30&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/colem-1.1.0.inf Apps]  [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,129 Archive]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/60164-colem-port-of-zx81-slightly-modified/ Discussion for modified version (no PND)]&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Commodore 64&lt;br /&gt;
|[[Vice]]&lt;br /&gt;
|2010-03-25&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/ViceX64.inf Apps] [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,46 Archive]&lt;br /&gt;
|Pickle&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|{{HideableNotes|Very good emulation, deactivate wrap mode in speed seetings if you suffer sound problems}}&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Commodore (Other)&lt;br /&gt;
|[[Vice]]&lt;br /&gt;
|2010-03-25&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/ViceMisc.inf Apps] [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,47 Archive]&lt;br /&gt;
|Pickle&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|{{HideableNotes|Emulates the CBM2, C128, PET, Plus4, and VIC platforms.}}&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|GPH GP2X/Wiz&lt;br /&gt;
|[[Ginge]]&lt;br /&gt;
|2010-08-16&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=package.ginge.notaz Repo]&lt;br /&gt;
|Notaz&lt;br /&gt;
|&lt;br /&gt;
|None&lt;br /&gt;
|{{HideableNotes|Not really an emulator. [http://www.gp32x.com/board/index.php?/topic/55980-ginge/page__view__findpost__p__913442 DO NOT run from root].  To get rid of the default blur filter, use [http://www.gp32x.com/board/index.php?/topic/57179-pandora-emulators-vs-gp2xwiz-emulators/page__view__findpost__p__923471 this solution].}}&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|HP-48&lt;br /&gt;
|[[Pandora-X48]]&lt;br /&gt;
|2010-06-17&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,113,96 Archive]  [http://zx81.zx81.free.fr/serendipity/index.php?/categories/129-HP-48 Download]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Emulates a calculator. [http://www.gp32x.com/board/index.php?/topic/54482-x48/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Macintosh 68K&lt;br /&gt;
|Basilisk II&lt;br /&gt;
|2010-12-15&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?app=core&amp;amp;module=attach&amp;amp;section=attach&amp;amp;attach_id=512 Download]  [http://www.mediafire.com/?ue5eyole855fyul 2]&lt;br /&gt;
|dgame&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/56900-basilisk-ii-pnd-68k-macintosh-emulator/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Mattel Intellivision&lt;br /&gt;
|[[Jzintv]]&lt;br /&gt;
|2010-09-02 &lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/jzintv.inf Apps]&lt;br /&gt;
|WizardStan&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/56426-jzintv/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|MSX&lt;br /&gt;
|[[Pandora-MSX]]&lt;br /&gt;
|2010-06-26&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/msx-1.1.1.inf Apps]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|zip, gzip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54775-pandora-msx-v1-1-0/ Discussion]  {{HideableNotes|Only disk images may be gzippped, and if they are, they cannot be written to.}}&lt;br /&gt;
|- &lt;br /&gt;
|NEC PC-9801&lt;br /&gt;
|[[Xnp2]]&lt;br /&gt;
|2011-05-01&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,393 Archive]  [http://apps.openpandora.org/cgi-bin/viewapp.pl?/Emulator/xnp2.inf Apps]  [http://www.mediafire.com/?57qer2aud0e8p9y Download]&lt;br /&gt;
|quews (port)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.youtube.com/watch?v=Bd3a-duBfdU Video]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|NEC PC Engine&lt;br /&gt;
|[[Pandora HuGo]]&lt;br /&gt;
|2010-06-28&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/hugo-1.1.0.inf Apps]  [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,117 Archive]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54833-hugo-pandora-v1-1-0/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|NEC PC Engine&lt;br /&gt;
|Temper (alpha)&lt;br /&gt;
|2011-07-25&lt;br /&gt;
|[http://exophase.devzero.co.uk/temper.pnd Download]&lt;br /&gt;
|Exophase&lt;br /&gt;
|&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/4047-tutorial-how-to-save-space-on-turbo-cdpc-engine-cd-games/ ogg]&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/4621-temper-split-from-other-thread/ Discussion]  Also supports the SuperGrafx.&lt;br /&gt;
|- style=&amp;quot;background: #81BEF7&amp;quot;&lt;br /&gt;
|NES&lt;br /&gt;
|[[GPFCE-GP2X]]&lt;br /&gt;
|2010-10-13&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,224 Archive]  [http://repo.openpandora.org/?page=detail&amp;amp;app=gpfcegp2x Repo]&lt;br /&gt;
|notaz&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|{{HideableNotes|The GP2X version of GPFCE, packaged into a PND with Ginge.}}&lt;br /&gt;
|- style=&amp;quot;background: #81BEF7&amp;quot;&lt;br /&gt;
|NES&lt;br /&gt;
|[[GPFCE]]&lt;br /&gt;
|2010-05-29&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,72 Archive]  [http://apps.openpandora.org/cgi-bin/viewapp.pl?/Emulator/gpfce.inf Apps]&lt;br /&gt;
|Notaz, Pickle&lt;br /&gt;
|[[Compat:Emulator_Compatibility_-_NES | W]]&lt;br /&gt;
|zip&lt;br /&gt;
|{{HideableNotes|Sound works if you set the rate to 44000Hz in the options.  Forces a 2xsai like filter.}}&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|NES&lt;br /&gt;
|[[nesemu]]&lt;br /&gt;
|2010-05-29&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,71 Archive]  [http://apps.openpandora.org/cgi-bin/viewapp.pl?/Emulator/nesemu.inf Apps]&lt;br /&gt;
|Pickle&lt;br /&gt;
|[[Compat:Emulator_Compatibility_-_NES | W]]&lt;br /&gt;
|&lt;br /&gt;
|[http://code.google.com/p/nesemu/ Website] Seems to only run at 40fps.&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|NES&lt;br /&gt;
|[[Nestopia]]&lt;br /&gt;
|2011-08-01&lt;br /&gt;
|[http://ompldr.org/vOXB2Mg/nestopia_openpandora_streak.zip Download]&lt;br /&gt;
|StreaK&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/60112-nestopia-for-openpandora-beta/ Discussion] {{HideableNotes|Emulator focus is accuracy.  Very high compatibility at a cost of speed.  Not a PND.}}&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|Nintendo 64&lt;br /&gt;
|[[Mupen64Plus]] 1.5.r20110615.2&lt;br /&gt;
|2011-06-16&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=mupen64plus Repo]&lt;br /&gt;
|Ari64, Adventus, JayFoxRox, sebt3, et al.&lt;br /&gt;
|[http://tinyurl.com/6ccuqmc GD]&lt;br /&gt;
|zip, 7z, bzip2&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/53683-mupen64plus/page__view__findpost__p__951543 Discussion]  Compatibility list is mostly outdated. {{HideableNotes|To get good auto-frameskip, switch to gles2n64 0.0.5, set frame render rate 2, auto frameskip 1 -[http://www.gp32x.com/board/index.php?/topic/53683-mupen64plus/page__view__findpost__p__946705]}}&lt;br /&gt;
|- style=&amp;quot;background: #F78181&amp;quot;&lt;br /&gt;
|Nintendo DS&lt;br /&gt;
|[[Desmume]]&lt;br /&gt;
|2011-08-04&lt;br /&gt;
|[http://www.2shared.com/file/wxnc3MRT/desmume097.html Download]&lt;br /&gt;
[http://www.mediafire.com/?8gvvhqz3e2zkxzj 2]&lt;br /&gt;
|notaz&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/4744-nintendo-ds-emulator/page__view__findpost__p__82779 Discussion] Not meant for entertainment; was ported only to shut people up.&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|Nintendo GBA/GBC/GB&lt;br /&gt;
|[[VisualBoyAdvance]]&lt;br /&gt;
|2010-12-08&lt;br /&gt;
|[http://apps.openpandora.org/cgi-bin/viewapp.pl?/Emulator/vba-1.7.2-0.inf Apps]  [http://www.mediafire.com/?7qbxlnp0h2isokf Download]&lt;br /&gt;
|EvilDragon, SteveM&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/57808-visualboyadvance-v1-7-2-1/page__p__929521&amp;amp;#entry929521 Discussion]. Runs GB/C well; GBA is slow&lt;br /&gt;
|- style=&amp;quot;background: #81BEF7&amp;quot;&lt;br /&gt;
|Nintendo GBA&lt;br /&gt;
|[[gpSP]]&lt;br /&gt;
|2011-09-08&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=package.gpsp.notaz Repo]&lt;br /&gt;
|Exophase, notaz&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|Discussion: [http://www.gp32x.com/board/index.php?/topic/60219-gba-emulator-that-you-can-adjust-the-screen-size/page__view__findpost__p__957136 GP32X] [http://boards.openpandora.org/index.php?/topic/5226-gpsp-for-pandora-from-notaz/ OP]. Zipped ROMs only.  Now a native port with fullscreen scaling.&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Nintendo GBA&lt;br /&gt;
|[[gpSP]] (Ginged)&lt;br /&gt;
|2010-10-13&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,199 Archive]&lt;br /&gt;
|Exophase, notaz&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://gpsp-dev.blogspot.com/ Website]. {{HideableNotes|Runs through [[Ginge]], only zipped ROMs.  [http://www.gp32x.com/board/index.php?/topic/58722-im-looking-for-a-gba-emulator-without-blurry-upscaling/ No fullscreen scaling].}}&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Nintendo GB/GBC&lt;br /&gt;
|[[GnuBoy]] 1.0.5Svn&lt;br /&gt;
|2010-11-10&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,207 Archive]  [http://repo.openpandora.org/?page=detail&amp;amp;app=sdlgnuboy Repo]&lt;br /&gt;
|Pickle, EvilDragon&lt;br /&gt;
|&lt;br /&gt;
|zip, gzip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/56916-gnuboy-updated/ Discussion] [http://www.gp32x.com/board/index.php?/topic/57436-gnuboy-v1-0-5-svn-released/ 2] uses [[PickleLauncher]]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Nintendo GB/GBC&lt;br /&gt;
|[[GnGB]] ('''beta''')&lt;br /&gt;
|2010-10-04&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?app=core&amp;amp;module=attach&amp;amp;section=attach&amp;amp;attach_id=482 Download]  [http://www.mediafire.com/?7qbxlnp0h2isokf 2]&lt;br /&gt;
|dgame (port)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/56886-gngb-pnd-game-boy-and-game-boy-color-emulator/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Nintendo Pokémon mini&lt;br /&gt;
|[[Pokémini]] 0.4.4&lt;br /&gt;
|2011-04-13&lt;br /&gt;
|[http://apps.openpandora.org/cgi-bin/viewapp.pl?/Emulator/pokemini.inf Apps]  [http://www.mediafire.com/?05g9s8w780mt58g Download]&lt;br /&gt;
|Wally&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/2898-pokemini-emulator-pokemon-mini Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Oric-1/Atmos&lt;br /&gt;
|[[PandOricutron]]&lt;br /&gt;
|2010-06-16&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/PandOricutron_108.inf Apps]&lt;br /&gt;
|torpor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54260-pandoricutron-1-0-8/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|PDP-11&lt;br /&gt;
|[[SIMH PDP-11]]&lt;br /&gt;
|2010-05-28&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,83 Archive]  [http://repo.openpandora.org/?page=detail&amp;amp;app=msimh.cosam.3.8.0.0 Repo]&lt;br /&gt;
|SteveM&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Philips Odyssey 2&lt;br /&gt;
|[[O2EM]] 1.18-1&lt;br /&gt;
|2010-08-21&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,71,186 Archive]  [http://repo.openpandora.org/?page=detail&amp;amp;app=o2em Repo]&lt;br /&gt;
|Hitnrun, Daniel Boris&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
|SAM Coupé&lt;br /&gt;
|[[SimCoupe]]&lt;br /&gt;
|2011-08-19&lt;br /&gt;
|[http://ompldr.org/vOXlsaw/simcoupe.pnd.zip Download]&lt;br /&gt;
|StreaK&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Discussion: [http://www.gp32x.com/board/index.php?/topic/60220-simcoupe-a-sam-coupe-emulator-beta/ GP32X] [http://boards.openpandora.org/index.php?/topic/4947-simcoupe-a-sam-coupe-emulator-beta/ OP]&lt;br /&gt;
|- style=&amp;quot;background: #81BEF7&amp;quot;&lt;br /&gt;
|Sega Genesis, CD, 32X, Master System&lt;br /&gt;
|[[PicoDrive]] 1.80&lt;br /&gt;
|2010-09-19&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=package.picodrive.notaz Repo]&lt;br /&gt;
|Notaz&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/56713-picodrive-1-80/ Discussion] ([http://www.gp32x.com/board/index.php?/topic/53899-picodrive-released/ old]). {{HideableNotes|Master System support is preliminary. Not all 32X games run.}}&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Sega Master System &amp;amp; Game Gear&lt;br /&gt;
|[[Dega]] v1.16-4&lt;br /&gt;
|2010-08-15&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=dega.cosam.1.16.0.2 Repo]&lt;br /&gt;
|SteveM&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54914-dega/ Discussion]{{HideableNotes|Press R+number to save, L+number to load, Pandora key to quit}}&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|Sega Master System&lt;br /&gt;
|PSMS v0.1&lt;br /&gt;
|2009-04-03&lt;br /&gt;
|[http://www.pandorasource.de/download.php?view.10 Download]&lt;br /&gt;
|cpasjuste&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #F7BE81&amp;quot;&lt;br /&gt;
|Sega Saturn&lt;br /&gt;
|Yabause r2660&lt;br /&gt;
|2011-08-06&lt;br /&gt;
|[http://hotfile.com/dl/126054899/6ca83f7/yabause-r2660.pnd.html Download]  [http://www.mediafire.com/?fmbn5ij2t3mucjh 2]&lt;br /&gt;
|Ari64&lt;br /&gt;
|[https://spreadsheets.google.com/spreadsheet/ccc?key=0Aq4SN3wYVIxgdHB4Z2hHcE9fQ3lTaTVMelEyZVBsVFE GD]&lt;br /&gt;
|&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/4583-yabause/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|SNES&lt;br /&gt;
|[[SNES9X4P]] 1.39ff - v20111205-2&lt;br /&gt;
|2011-12-06&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=snes9x4p_ivanovic Repo]&lt;br /&gt;
|HideableNotes|Ivanovic, Skeezix, SiENcE (Dingoo)&lt;br /&gt;
|&lt;br /&gt;
|7z&lt;br /&gt;
|Dingoo Snes9x port. [http://www.gp32x.com/board/index.php?/topic/55378-snes9x4d4p-another-new-build-now-with-hi-res-and-new-rom-picker/page__view__findpost__p__958887] uses [[PickleLauncher]]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|SNES&lt;br /&gt;
|SNES9X v0.2&lt;br /&gt;
|2009-04-03&lt;br /&gt;
|[http://www.pandorasource.de/download.php?view.7 Download]&lt;br /&gt;
|cpasjuste (port)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|SNES&lt;br /&gt;
|[[PocketSNES]] ('''beta''') 0.1&lt;br /&gt;
|2010-08-08&lt;br /&gt;
|[http://www.rangelreale.com/pandora/pocketsnes_hack_0.1.pnd Download]&lt;br /&gt;
|Hitnrun (port)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/55796-pocketsnes-hack/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #81BEF7&amp;quot;&lt;br /&gt;
|SNK Neo Geo&lt;br /&gt;
|[[GnGeo]] 0.8.3&lt;br /&gt;
|2011-04-20&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=gngeopnd-pepone Repo]&lt;br /&gt;
|Pepone, Manolis&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|Discussion: [http://www.gp32x.com/board/index.php?/topic/59207-gngeo-0-8-2/page__view__findpost__p__946739 GP32X] [http://boards.openpandora.org/index.php?/topic/2936-gngeo-083/ OP]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|SNK Neo Geo&lt;br /&gt;
|NeoGeo SDL&lt;br /&gt;
|2009-04-03&lt;br /&gt;
|[http://www.pandorasource.de/download.php?view.13 Download]&lt;br /&gt;
|Cpasjuste&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SNK NeoGeo Pocket&lt;br /&gt;
|NeoPop&lt;br /&gt;
|2010-07-15&lt;br /&gt;
|[http://www.pdroms.de/files/1969/ Download]&lt;br /&gt;
|Cpasjuste&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/58848-neopop-ngpc-emulator-released/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|SNK Neo Geo Pocket&lt;br /&gt;
|[[Race]]&lt;br /&gt;
|2010-06-20&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/race10.inf Apps]&lt;br /&gt;
|Hooka&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54187-race-a-neo-geo-pocket-color-emulator Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #F7BE81&amp;quot;&lt;br /&gt;
|Sony Playstation&lt;br /&gt;
|[[PSX4Pandora]]&lt;br /&gt;
|2010-11-16&lt;br /&gt;
|[http://www.zodttd.com/downloads/psx4pandora10b5.pnd Download]&lt;br /&gt;
|ZodTTD&lt;br /&gt;
|[http://spreadsheets.google.com/pub?key=0AkBB6e4g1lGtdFVwODhsQzdlWVdrMTRKdDFXa1laZ2c&amp;amp;hl=en_GB&amp;amp;output=html GD]&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/57522-psx4pandora-1-0b5/ Discussion]&lt;br /&gt;
|- style=&amp;quot;background: #90FF90&amp;quot;&lt;br /&gt;
|Sony Playstation&lt;br /&gt;
|[[PCSX-ReARMed]] r13&lt;br /&gt;
|2012-03-04&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=package.pcsx_rearmed.notaz Repo] [http://notaz.gp2x.de/releases/pcsxr/pcsx_rearmed_r13.pnd Download]&lt;br /&gt;
|notaz&lt;br /&gt;
|[https://spreadsheets.google.com/ccc?key=0ArSWWAWRjErldHZVZlFxY0tBVnRRNXM5U3ZqWFNuN0E&amp;amp;hl=en#gid=0 GD]&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/4046-tutorial-how-to-save-space-on-ps1-games-without-ripping-video-or-music/ pbp]&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/6546-pcsx-rearmed-r13-with-a-new-gpu/ Discussion] [http://www.gp32x.com/board/index.php?/topic/57973-pcsx-rearmed/page__view__findpost__p__955679 old thread]&lt;br /&gt;
|- &lt;br /&gt;
|Thomson TO8D&lt;br /&gt;
|[[TO8_PND]]&lt;br /&gt;
|2011-11-15&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=TO8D_PND Repo]&lt;br /&gt;
|SladeCraven&lt;br /&gt;
|&lt;br /&gt;
|None&lt;br /&gt;
|Emulates the Thomson TO8/TO8D computer. [http://boards.openpandora.org/index.php?/topic/6076-thomson-to8-emulator-beta-version-040/page__fromsearch__1 Discussion]&lt;br /&gt;
|- &lt;br /&gt;
|TI89/TI89 Titanium / TI92/TI92+ / V200PLT&lt;br /&gt;
|[[TiEmu]]&lt;br /&gt;
|2011-09-10&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=tiemu-6232 Repo]&lt;br /&gt;
|Kazuki&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Emulates a calculator.&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|TI-99&lt;br /&gt;
|Pandora-TI99 ([[TI99Sim]])&lt;br /&gt;
|2010-07-21&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,164 Archive]  [http://zx81.zx81.free.fr/serendipity/index.php?/categories/147-TI99 Download]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TI-92&lt;br /&gt;
|[[XTiger]]&lt;br /&gt;
|2010-06-30&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/ti92-1.1.0.inf Apps]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Emulates a calculator.&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|TRS-80&lt;br /&gt;
|[[SDLTRS]]&lt;br /&gt;
|2011-08-03&lt;br /&gt;
|[http://www.mediafire.com/download.php?72etxpjqaosa11b Download]&lt;br /&gt;
|Blue Protoman&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|I give no support to this!  This is a hackjob port!&lt;br /&gt;
|- style=&amp;quot;background: #81BEF7&amp;quot;&lt;br /&gt;
|Vectrex&lt;br /&gt;
|[[Pandora-Vectrex]] v1.1.1&lt;br /&gt;
|2011-03-06&lt;br /&gt;
|[http://zx81.zx81.free.fr/public/pandora/vectrex/pandora-vectrex-v1.1.1-pnd.zip Download]&lt;br /&gt;
|zx-81&lt;br /&gt;
|&lt;br /&gt;
|zip&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/58846-pandora-vectrex-vectrex-emulator-for-pandora-v110/page__view__findpost__p__942010 Discussion] Download game overlays [http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,5,355 here].&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|x86 DOS&lt;br /&gt;
|[[DOSBox]] v0.74svn&lt;br /&gt;
|2010-11-09&lt;br /&gt;
|[http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,72,54 Archive]&lt;br /&gt;
|Pickle&lt;br /&gt;
|[[DOSBox compatibility list|W]]&lt;br /&gt;
|None&lt;br /&gt;
|Discussion: [http://www.gp32x.com/board/index.php?/topic/57424-dosbox/ GP32Xa] [http://www.gp32x.com/board/index.php?/topic/53942-post-your-dosbox-successes-here/ GP32Xb] [http://boards.openpandora.org/index.php?/topic/2346-dosbox-room-for-optimization/ OPa] [http://boards.openpandora.org/index.php?/topic/2063-dosbox/ OPb]. [http://www.dosbox.com/comp_list.php General compatibility list]&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|x86 DOS&lt;br /&gt;
|[[DOSBox EX]]&lt;br /&gt;
|2011-08-16&lt;br /&gt;
|[http://ompldr.org/vOXhhMA/dosbox_ex.pnd.zip Download]&lt;br /&gt;
|StreaK&lt;br /&gt;
|&lt;br /&gt;
|None&lt;br /&gt;
|Discussion: [http://www.gp32x.com/board/index.php?/topic/60175-dosbox-ex-beta/ GP32X] [http://boards.openpandora.org/index.php?/topic/4855-dosbox-ex/ OP]&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|x86 PC&lt;br /&gt;
|[[Qemu for Pandora]]&lt;br /&gt;
|2012-03-02&lt;br /&gt;
|[http://www.openpandora.org/rebirth/qemu.pnd Download]&lt;br /&gt;
|IngoReis, mcobit&lt;br /&gt;
|&lt;br /&gt;
|None&lt;br /&gt;
|Discussion: [http://boards.openpandora.org/index.php?/topic/7004-qemu-for-pandora-for-rebirth-competition OP-Boards]&lt;br /&gt;
|- style=&amp;quot;background: #F3F781&amp;quot;&lt;br /&gt;
|x86 Windows 3.1 r2, r1&lt;br /&gt;
|[[WinBox]] ('''beta''')&lt;br /&gt;
|2010-12-15&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=winbox-1 Repo]  [http://urjaman.dyndns.info/winbox_r2.pnd Download]&lt;br /&gt;
|urjaman&lt;br /&gt;
|&lt;br /&gt;
|None&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/54985-win-3-1-via-dosbox-at-native-resolution/page__view__findpost__p__887198 Discussion] {{HideableNotes|Modified DOSBox to run Windows 3.1 at Pandora's native resolution}}&lt;br /&gt;
|-&lt;br /&gt;
|ZX-80 &amp;amp; ZX-81&lt;br /&gt;
|sz81&lt;br /&gt;
|2011-08-19&lt;br /&gt;
|[http://ompldr.org/vOXk0eA/sz81.pnd.zip Download]&lt;br /&gt;
|StreaK&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|ZX Spectrum&lt;br /&gt;
|[[Fuse]]&lt;br /&gt;
|2010-06-24&lt;br /&gt;
|[http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/fuse-0.9.0.inf Apps]  [http://repo.openpandora.org/?page=detail&amp;amp;app=fuse.cosam.0.10.0.2 Repo]&lt;br /&gt;
|SteveM&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: #xxxxxx&amp;quot;&lt;br /&gt;
|ZX Spectrum&lt;br /&gt;
|[[Zx Pandy]] v3.2.1.4&lt;br /&gt;
|2011-04-12&lt;br /&gt;
|[http://repo.openpandora.org/?page=detail&amp;amp;app=zx_pandy.dave18.001 Repo]&lt;br /&gt;
|Dave18&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/58536-zx-pandy-released/ Discussion]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; &amp;quot;C&amp;quot; is short for compatibility list.&lt;br /&gt;
FT = Forum Topic&lt;br /&gt;
GD = Google Docs&lt;br /&gt;
W = Wiki page&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; &amp;quot;CS&amp;quot; is short for &amp;quot;Compression Support&amp;quot;.  The entries denote the formats that can be used to save space on the games.  A blank entry doesn't mean &amp;quot;none&amp;quot;, it means there's not enough info!  Please add more if you can!&lt;br /&gt;
&lt;br /&gt;
==Unreleased emulators==&lt;br /&gt;
This section includes both emulators that are actively being worked on, as well as ones that are or may be abandoned. The latter are included for historical purposes. &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse; text-align: center; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec&amp;quot;&lt;br /&gt;
!Emulated System&lt;br /&gt;
!Project Name&lt;br /&gt;
!Last Update&lt;br /&gt;
!Status&lt;br /&gt;
!Author/Port Author&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|Amstrad PCW&lt;br /&gt;
|Joyce / Anne emu&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/4939-any-amstrad-pcw-lovers-in-da-house/page__view__findpost__p__85612 2011-08-18]&lt;br /&gt;
|Working build&lt;br /&gt;
|StreaK&lt;br /&gt;
|[http://boards.openpandora.org/index.php?/topic/4939-any-amstrad-pcw-lovers-in-da-house/ Discussion]  Looking for help for testing from someone familiar with the platform.&lt;br /&gt;
|-&lt;br /&gt;
|Sega Dreamcast&lt;br /&gt;
|NullDC&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/57821-dreamcast/page__view__findpost__p__944843 2011-03-28]&lt;br /&gt;
|On hold&lt;br /&gt;
|Zezu / drkIIraziel&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?s=&amp;amp;showtopic=47065&amp;amp;view=findpost&amp;amp;p=709910] drkIIraziel says he will have time to work on it &amp;quot;[http://www.gp32x.com/board/index.php?/topic/57821-dreamcast/page__view__findpost__p__944843 after April 10]&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Nintendo SNES&lt;br /&gt;
|[[PandaSNES]]&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?/topic/43213-any-snes-fans-in-the-house/page__view__findpost__p__631020 2008-07-29]&lt;br /&gt;
|Abandoned&lt;br /&gt;
|Squidge&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?showtopic=43213]  Probably discontinued; Squidge has not been heard from for a long time.&lt;br /&gt;
|-&lt;br /&gt;
|Sony Playstation Portable&lt;br /&gt;
|Pandora-PSP&lt;br /&gt;
|[http://jannikvogel.de/2011 2011-01]&lt;br /&gt;
|Abandoned&lt;br /&gt;
|[[User:JayFoxRox|JayFoxRox]]&lt;br /&gt;
|[http://www.gp32x.com/board/index.php?showtopic=47270]  Probably discontinued; JayFoxRox has since left the community.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
*[http://sebt3.openpandora.org/pnd/ Releases by sebt3]&lt;br /&gt;
*[http://www.hermocom.com/en/downloads/openpandora/ Releases by Hermocom]&lt;br /&gt;
*[http://rebirthofxeen.com/files/pandora/ Releases by WizardStan]&lt;br /&gt;
*[http://www.stuckiegamez.co.uk/apps/pandora/ Releases by StuckieGamez]&lt;br /&gt;
&lt;br /&gt;
===Forums===&lt;br /&gt;
The following community forums are checked when updating this page:&lt;br /&gt;
*From GP32X: [http://www.gp32x.com/board/index.php?/forum/63-news-zone-pandora/ News Zone], [http://www.gp32x.com/board/index.php?/forum/71-beta-testing-pandora/ Beta Testing] and [http://www.gp32x.com/board/index.php?/forum/64-developers-corner-pandora/ Developer's Corner]&lt;br /&gt;
*From OP: [http://boards.openpandora.org/index.php?/forum/26-software-news/ Software News] and [http://boards.openpandora.org/index.php?/forum/10-beta-testing/ Beta Testing]&lt;br /&gt;
*From GP2X.de: [http://forum.gp2x.de/viewforum.php?f=24 News] and [http://forum.gp2x.de/viewforum.php?f=59 Betatest]&lt;br /&gt;
&lt;br /&gt;
[[Category:Emulators]]&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
[[Category:List]]&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Configuring_ext_signals&amp;diff=9016</id>
		<title>Configuring ext signals</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Configuring_ext_signals&amp;diff=9016"/>
		<updated>2011-07-20T21:18:13Z</updated>

		<summary type="html">&lt;p&gt;Notaz: new page about software side of ext port&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Pin functions (mux)=&lt;br /&gt;
Currently this needs recompiling u-boot, but some easier control is planned.&lt;br /&gt;
&lt;br /&gt;
By default UART2 pins are set up as GPIOs, and UART3 as an UART.&lt;br /&gt;
&lt;br /&gt;
=Power supply=&lt;br /&gt;
Currently requires patching bootloaders (xload and u-boot).&lt;br /&gt;
&lt;br /&gt;
This is connected to VAUX3 supply on PMIC, with these programmable voltages (200mA max):&lt;br /&gt;
1.5V, 1.8V, 2.5V, 2.8V and 3.0V, with 2.8V as default.&lt;br /&gt;
&lt;br /&gt;
'''warning''': at the time of this writing, both bootloaders (xload and u-boot) set this to 2.8V, so don't rely on this providing other voltages during reboot until you patch both bootloaders.&lt;br /&gt;
&lt;br /&gt;
=GPIOs=&lt;br /&gt;
Can be controlled using GPIO sysfs class device, as described in beagleboard tutorials [http://bbfordummies.blogspot.com/2009/07/1.html here].&lt;br /&gt;
&lt;br /&gt;
=UART3=&lt;br /&gt;
By default, kernel messages are directed there and a terminal with a shell is attached. The port runs at 115200 8N1 baud rate.&lt;br /&gt;
==Disabling kernel messages==&lt;br /&gt;
To disable kernel mesages, you need to edit kernel boot arguments. Probably easiest way to do it is to create autoboot.txt and place on root directory of a card in slot1 with this content:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
setenv bootargs ubi.mtd=4 ubi.mtd=3 root=ubi0:rootfs rootfstype=ubifs rw rootflags=bulk_read&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Alternatives are using u-boot environment (configure through USB or UART3 serial before system boots up) or patching and reflashing u-boot itself.&lt;br /&gt;
==Disabling attached terminal==&lt;br /&gt;
For this you need to edit /etc/inittab on pandora rootfs and comment out this line:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#S:2345:respawn:/sbin/getty 115200 ttyS0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Notaz</name></author>
		
	</entry>
</feed>