==== The systems ====

   * Nintendo DS
      * Large multi billion dollar Japanese company
      * Proprietary
   
   * Gp2x by Gamepark Holdings
      * Small Korean indie company
      * Split off from slightly larger company
      * Open

==== A couple of other handheld systems ====

   * The PSP
      * DRM signed-binary evilness
         * Ken Kutaragi versus Sony
         * //"Many attributed the demotion to his speech at the Foreign Correspondents' Club in Tokyo wherein he criticised Sony's policy of using proprietary technologies and implicitly criticised the company's use of DRM technologies in reference to Sony's failure to offer a compelling strategy to answer the rise of Apple Computer's iPod."//
         * No longer the president of Sony Computer Entertainment
      * Very inelegant hacks are needed, different for every firmware
      * GPLv3?

      * Runs uClinux 2.4.19
          * Serial port connection

   * The gameboy advance
      * 2.0 uCLinux kernel
      * sash shell
      * crippled csh shell
      * essentially useless

==== Hardware rundown: The NDS ====

   * 2 ARM Processors
      * 67MHz ARM946E-S
      * 33MHz ARM7TDMI (iPod, LEGO Mindstorm)
      * Supports 32 and 16 bit arm/thumb instruction sets
   * Memory
      * 4 MB RAM
      * No MMU
   * Storage
      * Cards hold up to 1 gigabit = 128 Megs
   * Network
      * 802.11 wifi
      * Reverse engineered by Stephen Stair for a bounty
   * Joypad
   * Touchscreen
      * Single touch detection
      * Good pressure resolution
   * Graphics
      * Old standard nintendo hardware modes
         * Tiled mode
         * Framebuffer
         * One set of 2d hardware per screen
      * New 3d mode supporting:
         * Single set of 3d hardware
         * Transform and lighting
         * Textures
         * Alpha and aliasing
         * Cel shading
         * Z-buffering
         * Not supported by DSLinux yet 
   * Battery
      * Around 10 hours on a 4 hour charge
   * External storage:
      * Supercard
      * GBA Movie Player (GBAMP M3)
      * Support CF, SD, MiniSD
      * GBA Slot vs NDS slot

==== Hardware rundown: The GP2X ====

   * Screen is large and clear (8.5cm, 320x200)
   * TV out cables available
   * Joypad and buttons for input
   * Powered off two AA batteries (!!) or adapter
   * 2 ARM Processors on one die (MagicEyes chip)
       * 200MHz Host ARM920T
       * 200MHz ARM940T
   * 64MB RAM
   * 64MB NAND flash rom (with Linux on it)
   * Compact flash slot builtin - up to 4GB
       * Mounts at /mnt/sd inside the unit
   * USB
       * No USB host mode
       * USB Network
          * Web server
          * FTP
          * telnet
          * Samba
       * USB Human Interface Device
   * EXT port

==== Breaking out the GP2X ====

   * EXT port connector
   * Turns the gp2x into a fully fledged system
      * 4 regular USB ports
      * RS232
      * Audio (2 x RCAs)
      * Composite Video out & Jtag
   * Currently just a circuit board

   * Ideas
     * USB Wifi
     * Media machine
     * Mame cabinet

==== Linux on the NDS ====

   * uCLinux
      * Largely integrated with the kernel for some architectures
      * DSLinux uses 2.4, 2.6
   * No MMU, No paging
   * 8 bit writes to the GBA slot gcc hack
      * GBA slot is 32 MB
      * 16 bit access only
      * 8 bit write corrupts one byte of memory
      * Gcc modified to do a read-modify-write for 8 bit writes
      * Use swp instead of str
   * Text segment XIP for kernel and user space
   * Sidenote: Stackless Python on the NDS

==== Linux on the Gp2x ====

   * 2.4.25 (built 2006.04.20)
   * Periodic firmware updates with new kernels - slow
   * libSDL, libmad, libogg, and everything else nice
   * Builtin interface is themable, closed source
   * Linux runs on one of the CPUs, 2nd is programmable
      * Ships with GPH video codec on it
      * OpenGL software renderer (OpenGL ES)
         * Vincent
         * GL2x
         * TinySDGL is working already
      * Audio processor possible
      * AI

   * Troubles with getting Kernel source from Dignsys and GPH
       * December 1, 2005 - first source release (incomplete)
       * February 17, 2006 - Firmware 1.4
       * December 5, 2006 - Firmware 2.1
   * You can build your own kernel but it's a sketchy job
      * Copy it to the NAND to install it
   * It's possible to make an autostarting SD image
   * Open2x is an effort to develop a totally independent kernel
   * gp32x.com is gp2x hacker central

==== Targetting the NDS ====

   * Documentation http://dslinux.org/
   * Building the kernel - requires modified toolchain
   * Porting apps - use the kernel source, luke
   * make xsh
   * Direct versus using Linux
      * NDSPython Stackless
   * TinyX and other windowing libraries
   * Demos

==== targetting the GP2X ====

   * Pygame!
   * Statically linking
   * Documentation
   * Demos

==== The NDS Community ====

   * Support from Nintendo
   * Forums vs mailing lists
   * Speed and direction of development

==== The GP2X Community ====

   * Support from Gamepark Holdings
   * Difficulty of obtaining the SDK
   * Lack of mailing lists
   * Language barrier

==== Conclusion ====

   * Which one goes in my pocket?
   * Price comparison
   * What I use the NDS for
   * What I use the GP2X for