************************
*      Fenix GP2X      *
*        Beta 4        *
************************

Portado de: http://fenix.divsite.net
Por: Israel López Fernández (Puck2099)
Website: http://www.gp32wip.com
Contacto y donaciones (Paypal): puck2099@gmail.com
Basado en parte en el port de Fenix de Chui para la GP32 y controles gracias a la
minilib de Rlyeh.
Tests obra de Joanvr.
Shoot obra de devlkore.

¿Qué es el Fenix?
-----------------
Es un intérprete para jugar a juegos realizados en dicho lenguaje de programación. Aparte de
poder usar los juegos creados en Fenix específicamente para la GP2X, también es posible usar
los creados para la GP32 sin necesidad de recompilarlos.

¿Cómo lo instalo?
-----------------
Descomprime los archivos en cualquier lugar de la tarjeta SD. Dentro de la carpeta Fenix vienen
varios tests y un minijuego de muestra para comprobar su funcionamiento. Si quieres añadir
nuevos juegos, edita uno de los archivos .gpe que acompañan el juego y crea otro basado en él
para lanzar el nuevo juego.

¿Está disponible el código fuente?
----------------------------------
Sí, tal y como exige la licencia GPL, podéis descargar el código fuente en mi propia
página web. Eso sí, aviso que los cambios realizados no están lo suficientemente
"limpios" ni documentados. 
Si queréis hacer algún cambio, por favor, os agradecería que contactárais primero
conmigo para no trabajar dos personas en solucionar los mismos problemas :)

Parámetros:
----------
Este nuevo runtime incorpora la posibilidad del paso de parámetros a través del script usado en
cada juego. El uso sería el siguiente:

./fxi juego.dcb [opciones]

Donde en opciones podéis usar los siguientes flags:

    * -nosplash -> Se salta la splash screen con información sobre la versión del runtime y 
                   velocidad de ejecución. Si no os gusta la imagen de fondo o queréis
                   personalizarla, podéis poner una imagen con el mismo nombre que el ejecutable y
                   extensión bmp, jpg, gif o png (por ejemplo, si el juego se llama bang.dcb, la
                   imagen se llamaría bang.png) en el mismo directorio que dicho ejecutable.
    * -sXXX -> Define la velocidad a la que se ejecutará el runtime (200 Mhz si no se especifica
               este parámetro). XXX corresponde a la velocidad en Mhz, por ejemplo, -s245 pondrá la
               consola a 245 Mhz mientras se juegue.
    * -gp32 -> Arranca la consola en modo GP32, es decir, controlando el volumen automáticamente
               con los botones VOL+ y VOL-. Este modo se activa por defecto.
    * -gp2x -> Arranca la consola en modo GP2X, con control total sobre todos los botones.


El overclocking está limitado de 133 a 300 Mhz, con los siguientes valores debería funcionar
(siempre que lo aguante vuestra consola), pero los intermedios ya no lo sé...
133, 150, 166, 180, 200, 225, 233, 245, 250, 255, 260, 265, 266, 270, 275, 280, 285, 290, 295 y 300.

Controles:
----------
Este port admite dos modos de juego: el modo "nativo" y el modo "emulado".

En el modo "nativo", solo para la GP2X, hay que programar los juegos tomando el control como
si fuera un joystick de 19 botones, con las mismas correspondencias que en las SDL, como puede
verse en: http://wiki.gp32spain.com/index.php/Mapeo_del_joystick_en_SDL

En el modo "emulado" el port reconoce la pulsación de ciertas teclas de un teclado y las emula
con sus propios botones con la siguiente correspondencia:
Cursores -> pad
ctrl -> A
alt -> B
return -> START
space -> SELECT
backspace -> L
tab -> R
x -> X
z -> Y
a -> VOL-
s -> VOL+
c -> CLICK

Cambios en Fenix GP2X:
----------------------
Beta4
-------
- Implementada posibilidad de cambiar la frecuencia del procesador de 133 a 300 Mhz.
- Uso de funciones de manejo de memoria en ensamblador para mejorar algo la velocidad de estas
  operaciones.
- Implementada "splash screen" configurable con información de la versión (si quieres cambiar la
  imagen por una propia, añade una imagen en formato bmp, gif, jpg o png en la misma ruta y con el
  mismo nombre que el .dcb).
- Eliminado el uso del archivo .conf para seleccionar el uso de los botones de volumen, ahora se
  indica mediante parámetros.
- Implementada "salida forzosa" (con L+R+CLICK) para los juegos (principalmente de GP32) que no
  la llevan por software.
- Solucionado bug que afectaba a funciones matemáticas (sin, cos, abs...) y hacía que siempre
  devolvieran 0.
- Solucionado bug que mostraba todo el texto en pantalla en minúsculas.
- Solucionado bug que no salvaba realmente los datos a la SD cuando era requerido.
- Aumentada la compatibilidad con muchos juegos, ya funcionan juegos como Maniac Race, Yetti, 
  Xenon, Castle of Dr. Malvado...

Beta 3
-------
- Nuevo aumento de velocidad respecto a la última versión (Beta2). Ahora es más rápido que el
  port de GP32 en todos los tests que me pasó Joanvr. Os dejo una tabla comparativa de velocidad
  para que veais en el archivo tests_fenix.txt.
- Solucionados problemas de compatibilidad de sonido con el nuevo firmware 1.4.
- Conversión automática de llamadas a ficheros en minúsculas. Ahora funcionan los juegos que no
  tiraban porque en su código se hacían llamadas a ficheros en mayúsculas (cosa que no soporta el
  sistema VFAT de la GP2X) como era el caso de Pulplife, Yetti, etc.
- Implementado control de volumen de forma interna. Ahora por defecto los botones VOL+ y VOL-
  servirán para subir o bajar el volumen del juego. Sin embargo, es posible editar el archivo de
  texto con el nombre del .dcb pero extensión .conf que se generará la primera vez que se ejecute
  el juego y poner el valor "gimme_vol_buttons=0" a 1 para ignorar el control automático de volumen
  y disponer de esos botones libremente.
- Solucionado (al menos aparentemente) el problema de reducción drástica de velocidad al
  reproducirse MODs de gran tamaño.

Beta 2
-------
- Corregido bug con las diagonales, ahora se usan las minilib de Rlyeh para emular el control.
- Intercambiado el uso de los botones L y R para ser igual que en la GP32.
- Disminuidos los retardos en los efectos sonoros.
- Añadidas optimizaciones en el uso de floats que aumentan la velocidad en ciertos casos.

Beta1:
-------
- Primera versión.
