# GP2X

GP2X es una videoconsola portátil libre creada en 2005 por la empresa surcoreana Gamepark Holdings.

## Generalidades

Gamepark Holdings, lanzó su GPX2 después de la escisión de Gamepark, tras los desacuerdos entre ambas empresas debido al tipo de mercado al que iría dirigida la sucesora de la GP32. Mientras Gamepark se decidió por lanzar una consola comercial que compitiera con Nintendo DS y PSP, llamada XGP, Gamepark Holdings quiso desarrollar una videoconsola orientada al software libre, que pudiera utilizar homebrew, y basada en GNU/Linux.
En octubre de 2007 salió al mercado un nuevo modelo de esta consola: GP2X F-200. Cuenta con pantalla táctil QVGA y se ha reemplazado el stick por un D-Pad de 8 direcciones. El consumo de batería ha sido optimizado e incluye soporte para tarjetas de memoria SDHC de hasta 32 GB. Está disponible en color blanco y es retrocompatible con la anterior GP2X F-100 y su revisión (GP2X F-100 MK2). Este modelo está a la venta en España desde noviembre de 2007.
Los modelos F100 y F200 de la GP2X dejaron de producirse en el año 2009, siendo sustituidas por el modelo más avanzado GP2X Wiz.

## Software

Existe una comunidad de desarrollo para la GP2X muy dinámica, y constantemente se están creando y, sobre todo, aportando juegos y programas para esta consola. Entre los tipos de software disponible, encontramos emuladores de otras máquinas, conversiones, programas propios y programas de reproducción multimedia.

### Emuladores

Una de las bazas principales de GP2X es la posibilidad de emular numerosos sistemas. Para ello, se beneficia de un procesador principal ARM, para el que ya existen multitud de proyectos relacionados con la emulación que se pueden reutilizar a la hora de programar un emulador. En el GP2X File Archive se puede encontrar una lista de sistemas emulados. Presumiblemente, los dos sistemas más potentes que podrían ser emulados a una velocidad jugable (dependiendo del juego) son PlayStation y Game Boy Advance. Para esta última es probable que se usen técnicas de virtualización, que suelen aportar un rendimiento mucho mayor que otros tipos de emulación.

### Conversiones e intérpretes

La consola también ha recibido conversiones de diferentes motores e intérpretes. El más famoso es el port del motor de Quake, el juego de id Software. Esto es posible gracias a que la compañía libera el código fuente de sus juegos pasados unos años de su publicación, lo que contribuye a mantenerlos vivos aun cuando ya no son actualidad. Otro intérprete del que no es difícil encontrar conversiones para diferentes sistemas es el ScummVM, también disponible para GP2X de la mano del programador coreano NK. Este sistema permite jugar a aventuras gráficas de la compañía LucasArts/Lucasfilms Games, además de otras aventuras de otras empresas que usan ese mismo motor.
También existen videojuegos originalmente desarrollados para otras plataformas que han sido adaptados a GP2X al ser de código abierto, como el Super Methane Brothers.

### Videojuegos

También existe software comercial para GP2X. La mayoría de estos videojuegos son pequeños videojuegos de lógica, aunque también existan videojuegos de plataformas. A pesar de que esta plataforma no despierta mucho interés en las empresas desarrolladoras, existen varios videojuegos publicados o en desarrollo, como Payback, Vektar, y varios videojuegos de la empresa Int13.
Asimismo, existe una adaptación no oficial del lenguaje Fénix para esta videoconsola, y pese a que aún se encuentra en fase de desarrollo, ya existen algunos videojuegos para GP2X desarrollados en este lenguaje.

### Reproducción multimedia

GP2X puede reproducir una gran variedad de formatos multimedia, y es una de las principales características que GPH ha querido publicitar de su consola.
La máquina puede reproducir formatos de vídeo MPEG 1, 2, 3 y 4, DivX 3.11, 4x, 5x, y superior, y Xvid a una resolución máxima de 720x480 a 30fps y 2500 kbit/s. A última hora se retiró el soporte de WMV 7, 8 y 9 por problemas de licencia, pero se anunció que se ofrecería algún tipo de alternativa para reproducir este formato. Además, existe la posibilidad de aprovechar la salida de televisión para conectar la consola a un televisor cualquiera con conector S-Video. Esta salida puede ser o bien NTSC o PAL.
También se puede reproducir música en formato MP3, Ogg y WMA con un máximo de 384 kbit/s. Mediante aplicaciones adicionales se pueden reproducir varias decenas de formatos más, principalmente de Commodore Amiga, como MOD, SID, XM, etc.

## Conectividad

La GP2X tiene tres puertos para la conectividad externa: un lector de tarjetas SD, un puerto USB para la conexión con un ordenador y un puerto EXT para la conexión de tarjetas de expansión y salida de televisión. La GP2X no tiene internamente ninguna conexión inalámbrica, como WiFi o Bluetooth, y probablemente éste sea el punto que más se le critica a la consola.
La conexión USB al ordenador puede funcionar como un dispositivo de almacenamiento externo o como puerto serie estándar. Internamente la GP2X tiene un servidor HTTP, Telnet, FTP y SMB. A través de la conexión a la computadora se puede navegar por Internet y jugar en red.
Finalmente, a través del puerto de expansión EXT se puede conectar un cable TV-Out (para jugar, ver vídeos etc en un televisor) o una dockstatión, que incorpora la salida TV-Out (S-Video y 2 jack de audio), 2 puertos PS/2, y 4 puertos usb en los que se pueden conectar mandos adicionales para controlar la consola, nuevos dispositivos de almacenamiento, interfaces red para WiFi o Bluetooth, etc.
Para principios de mayo de 2007 anunció la comercialización de la dockstatión "retail version" (nombre en clave Cradle), que a diferencia de la versión para desarrolladores (que consiste en la placa del circuito), presenta un aspecto mucho más agradable, en forma de mini-plataforma sobre la que se coloca la GP2X directamente. La dockstatión Cradle dispone de un puerto paralelo en vez de los puertos PS/2. Puede alimentarse con un alimentador de 5V con 2A como mínimo y una polaridad de positivo dentro, negativo fuera. Para este fin se puede usar un alimentador multivoltaje teniendo en cuenta su polaridad o algún alimentador que coincida con estas características cambiando si es necesario la clavija.

## Desarrollo de software

La predecesora de la GP2X, la GP32, empezó como una consola dedicada únicamente a juegos comerciales desarrollados bajo licencia, como cualquier consola hasta entonces. Tras un tiempo, Gamepark acabó reconociendo el software amateur que escribían para la consola todo tipo de programadores aficionados. La GP2X estuvo orientada al desarrollo libre desde su lanzamiento: no hace falta adquirir ningún tipo de licencia para programar para ella, y el kit de desarrollo de software es totalmente gratuito. Una plataforma propicia para el desarrollo de software homebrew.
Sin embargo, el sistema de desarrollo también ha estado envuelto en controversia. No se realizó ningún lanzamiento oficial del SDK, y las pocas herramientas disponibles al principio se tenían que descargar desde un servidor FTP privado. Poco a poco se fueron creando entornos de desarrollo y librerías como la GP2X Minimal Library de un conocido programador español, Rlyeh.
La GP2X utiliza una versión reducida Linux 2.4, y está disponible toda la potencia de este sistema operativo. Se han portado varias librerías estándar Linux a la consola, como la LibSDL para la programación gráfica. El software puede escribirse en una gran variedad de lenguajes como C, C++, Python, Ruby, Fenix y Java SE. También existe un terminal Shell de UNIX desde el que puede controlarse totalmente el sistema operativo y su configuración.
Existen varias opciones a la hora de programar para GP2X. Resulta relativamente fácil compilar un programa de GNU/Linux que use las bibliotecas SDL para GP2X, de forma casi directa, y usando herramientas como el DevkitGP2X. A la hora de optimizar el código, se pueden usar librerías como la ya mencionada GP2X Minimal Library o cpuctrl, creadas por la comunidad de programadores. La última opción, destinada especialmente a programadores expertos consiste en usar el proyecto Hardcore Homebrew. Este proyecto pretende crear las herramientas necesarias para ejecutar software en GP2X sin necesidad de GNU/Linux, liberando los recursos que ocupa este sistema operativo. Para ello, además de las librerías apropiadas, se está creando un nuevo firmware con un gestor de arranque que permita elegir si la consola debe cargar Linux o el lanzador de aplicaciones Hardcore Homebrew. Esto, sin embargo, puede acarrear quebraderos de cabeza al usuario de a pie, que necesitará actualizar el firmware de su consola en un proceso que podría inutilizarla, si la actualización se interrumpe (por ejemplo, por un corte en la alimentación). Además, para usar un programa que funcione bajo GNU/Linux y luego ejecutar otro que funcione bajo HH, sería necesario reiniciar la consola, con las molestias y el gasto extra de batería que ello conlleva.