************************
*      AlexKidd2X      *
*         v0.6         *
************************

Por: Israel Lpez Fernndez (Puck2099)
Website: http://www.retrowip.com
Contacto y donaciones (Paypal): puck2099@gmail.com
Basado en el trabajo de Charles Mac Donald.
Splash screen obra de Neostalker.
Agradecimientos especiales a Rlyeh por sus minimal libs y la ayuda prestada en la realizacin
del emulador.
Gracias tambin a Franxis por compartir sus Wiz_libs.

Qu es AlexKidd2X?
-----------------
Es un emulador de SEGA Master System y Game Gear para la GP2X Wiz.

Cmo lo instalo?
-----------------
Descomprime los archivos en cualquier lugar de la tarjeta SD. Copia las roms elegidas en el
directorio que prefieras. Si las roms estn en un directorio distinto al "roms" que acompaa al
ejecutable, tendrs que editar el archivo alexkidd2x.cfg y poner la ruta absoluta apropiada (por
ejemplo, si copias las roms en la carpeta roms/sms de la raiz, tendrs que editar el archivo y
poner /mnt/sd/roms/sms. Estas roms pueden estar tanto descomprimidas (con extensin .sms o .gg)
o comprimidas en un .zip (una rom por archivo).
Si quieres aadir marcos personalizables, cpialos al directorio marquees que acompaa al
ejecutable, pero recuerda usar solo archivos .png

Est disponible el cdigo fuente?
----------------------------------
S, tal y como exige la licencia GPL, podis descargar el cdigo fuente en mi propia
pgina web. Eso s, aviso que los cambios realizados no estn lo suficientemente
"limpios" ni documentados. 
Si queris hacer algn cambio, por favor, os agradecera que contactrais primero
conmigo para no trabajar dos personas en solucionar los mismos problemas :)

Cmo podra ayudar?
--------------------
Hay muchas formas de aportar tu granito de arena a la scene, pero si quieres ayudarme a mi
personalmente agradecera enormemente que me comunicaras los bugs que hayas encontrado, ideas
tiles que se te ocurran o cualquier comentario sobre mi trabajo :)
Por otro lado, si quieres ayudarme a mantener el servidor desde donde bajar mis trabajos o mi
pgina web, puedes hacer cualquier donacin via Paypal (puck2099@gmail.com) o transferencia
bancaria (pdeme la cuenta) y ser gustosamente recibida. Ah, tambin me interesa material retro
como juegos de Master System, as que si tienes alguno que te estorbe en casa, agradecera que me
lo mandaras para conseguir una emulacin ms fina.

Controles:
----------
Los controles del selector de roms son:
Arriba/Abajo -> Mueve el cursor una lnea.
L/R/Izquierda/Derecha -> Mueve el cursor una pgina.
Izquierda/Derecha -> Cambia opcin del men.
B -> Confirma.
Y -> Previsualiza marco seleccionado (mantenlo presionado).
CLICK+X / A+X -> Borra rom seleccionada.
CLICK+Y / A+Y -> Guarda la configuracin de rom actual como defecto para toda rom sin configuracin/
	         Salva el directorio actual como directorio de roms por defecto.
START -> Vuelve atrs/sale del emulador.
SELECT -> Confirma el men/Escanea el directorio seleccionado para identificar ROMs.


Los controles del juego pueden ser remapeados desde el men, pero por defecto son los siguientes:
Joystick -> Cruceta.
A -> Botn 1.
B -> Botn 2.
MENU -> Pausa.
CLICK+VOL+ / SELECT+VOL+ -> Incremente el slot actual (hasta un mximo de 10).
CLICK+VOL- / SELECT+VOL- -> Decrementa el slot actual.
CLICK+L / SELECT+L -> Salva partida en el slot actual.
CLICK+R / SELECT+R -> Carga partida del slot actual.
CLICK+X / SELECT+X -> Muestra/Oculta indicador de batera.
CLICK+Y / SELECT+Y -> Muestra/Oculta FPS.
VOL+ -> Aumenta volumen.
VOL- -> Disminiye volumen.
L+R -> Vuelve al men saliendo del juego.

Sobre la versin de Wiz
-----------------------
En principio tendra que funcionar todo lo que en la GP2X salvo lo siguiente:
- Marcos personalizables (todava no he implementado el canal YUV e igual los dejo para un modo de color
  de 16 bits).
- Reescalado a pantalla completa (el canal RGB de la Wiz no admite reescalado hardware, as que la nica 
  opcin que se me ocurre es mostrar el framebuffer en 16 bits y hacer un reescalado software o bien tirar 
  de OpenGL).
- Mostrar carga de la batera (todava no s acceder ni interpretar los valores de la misma).

Cambios en AlexKidd2X:
----------------------
v0.6:
- Corregido problema con sonido FM. Ahora tiene que funciona en ROMs europeas que antes no lo haca
  (Out Run, R-Type, California Games, etc.). Gracias a Steve Cain (shiffy) y Bob Forgan por avisar.
- Aadido soporte para Tweak RAM Timmings. Por defecto est desactivado, si quieres activarlo tan solo
  tienes que borrar el archivo notweak (y lo contrario para desactivarlo nuevamente).
- Aadido soporte para control alternativo al botn CLICK de forma que funcionen las combinaciones de
  botones en la nueva F200 y consolas modificadas. Gracias a Ryo por su hack anterior.
- Modificado el volumen de sonido a la mitad si detecta que se ejecuta en una F200.
- Eliminado nivel de batera y control del LED asociado si detecta que se ejecuta en una F200.
- Otros cambios menores.

v0.5:
- Reescrito gran parte del cdigo del emulador para conseguir una emulacin ms precisa de la 
  mquina.
- Incluido el MMU Hack de Squidge para ganar algo de velocidad.
- Implementada base de datos basada en CRC. Cada vez que se carga un juego, se comprueba su CRC y
  se compara con una base de datos interna para obtener su nombre y algunos parmetros.
- Se ha cambiado la estructura de directorios. Ahora las partidas salvadas van en "save" en lugar
  de en el directorio de las roms y los archivos de configuracin tienen extensin .cfg. Gracias al
  CRC indicado anteriormente, ahora se salvan estos datos con el nombre adecuado, de forma que si
  tenemos una misma rom con varios nombres distintos, el programa internamente las tomar como la
  misma, permitiendo que las partidas guardadas y configuraciones se puedan usar en todas ellas
  automticamente.
- Aadidos 10 slots para salvar/cargar partidas en lugar de 1. Se puede cambiar entre slots con
  CLICK+VOL- o CLICK+VOL+.
- Aadidos mensajes en pantalla para mostrar informacin en determinados momentos (informacin
  cuando cargas/salvas partida, cambio de slot, anotaciones sobre ROMs...).
- Posibilidad de overclockear o downclockear la velocidad del micro Z80 desde el men de opciones.
  Puede ser til para algunos juegos que no iban a 100% en la propia Master System original.
- Cargado/salvado de la ram interna de los cartuchos ahora funciona correctamente.
- Aadidas voces digitalizadas y funcionando perfectamente (ver Street Fighter 2, Gauntlet, Sonic
  de Game Gear...).
- Chip FM funcional y elegible entre dos emulaciones diferentes. Se comprueba por CRC que solo se
  active en los juegos que llevan soporte para ello (Wonderboy 3...).
- Posibilidad de elegir samplerate entre 44100 y 22050. Prcticamente suenan igual, as que por
  defecto se selecciona 22050 que es ms rpido.
- Paletas de colores ms brillantes, ahora se ve mejor :)
- Optimizada cache de tiles.
- Cambio de la barra vertical de la izquierda que aparece en muchos juegos con scroll vertical del
  color de fondo a color transparente.
- Eliminada la opcin de elegir frameskip y sustituida por un autoframeskip.
- GUI completamente rehecha en 8 bits de color. Ahora se evitan cambios de video entre la GUI y la
  emulacin y va ms fina.
- Ahora se guarda la velocidad de CPU y configuracin del LCD al entrar al emulador y se restaura al
  salir, evitando cambios inadecuados cuando se sala del emulador.
- Corregido en parte los parpadeos en el selector de ROMs.
- Muchos cambios menores y ajustes en la GUI (avanzar pginas tambin con Izquierda y Derecha,
  Recordar posicin del cursor en la lista de roms...).
- Escaneo de directorios en busca de CRCs desde el men de eleccin de roms pulsando SELECT. Esto
  guarda un archivo con la informacin de forma que se cargue automticamente y sin pausa cada vez
  que se pase por el directorio.
- Aadido modo compatibilidad para algunas roms de Game Gear que no funcionaban correctamente
  (Castle of Illusion, Prince of Persia, Out Run Europa...). Se muestran como si fueran de Master
  System.
- Aadida posibilidad de elegir mostrar las roms de Game Gear con la resolucin de Master System.
- Aadido soporte para joysticks USB y configuracin de estos. Ahora es posible jugar a dobles
  usando uno o dos de estos joysticks junto a una dockstation o similar.
- Cambio modo de eleccin de la region. Ahora es posible elegir la regin (Japn o bien USA o
  Europa) y el modo de video (PAL o NTSC).
- Aadido mucho mejor soporte para el modo PAL y sus 50 hz.
- Solucionados bugs menores.

v0.4:
- Control del selector de roms mejorado, ahora responde mejor a los eventos de botones.
- Corregido bug con rutas absolutas.
- Aadida navegacin por directorios para seleccionar las roms de cualquier lugar del rbol de
  directorios (NAND, SD, etc.). Se puede seleccionar el directorio actual como la ubicacin por
  defecto de las roms pulsando CLICK+Y.
- Corregido bug que permita seleccionar "lneas vacas" como si fueran roms.
- Velocidad del selector de roms constante (100 Mhz) para evitar parpadeos al volver con distintas
  frecuencias.
- Aadida la posibilidad de seleccionar marcos personalizables (solo admite imgenes en png) para
  jugar a la resolucin original. Si os metis en el men de seleccin y no queris elegir ninguna,
  seleccionad !none.png
- Aumento ligero de la velocidad (hasta un 10% en algunos casos).
- Aadido indicador del nivel de batera durante el juego y aviso visual de batera baja mediante
  led rojo (se puede activar y desactivar el icono de la batera pulsando CLICK+X, excepto cuando
  la carga est a punto de agotarse (cuando parpadea el indicador) que no se puede ocultar).
- Corregido aspect ratio de Game Gear en modo a pantalla completa.
- Solucionados bugs menores.

v0.3:
- Cambio de color de 16 a 8 bits con una ganancia estimada de hasta un 60% de velocidad con
  respecto a la versin anterior.
- Aadidas velocidades menores al selector de roms para ajustar la velocidad y ahorrar bateras.
- Aadida la posibilidad de configurar la ruta donde buscar la roms por defecto (ver instalacin).
- Aadidas las direcciones al remapeo de controles, de modo que puedas asignar un botn a una
  direccin del pad (til en juegos como Bank Panic).
- Mejorado el control en el remapeo de botones, hacindolo ms preciso que antes.
- Aadida la posibilidad de cambiar la configuracin por defecto de todas las roms (pulsa Click+Y
  en la pantalla de configuracin para aplicar sta a todas las roms que no hayan sido
  ejecutadas previamente).
- Aadido selector de region para limitar los FPS a 60 (NTSC) o 50 (PAL).
- Aadido soporte para juegos con SRAM de modo que salve la partida en el propio juego.
- Aadidos los caracteres que faltaban a la fuente del selector de roms (!?[]) para un mejor
  aspecto visual.
- Solucionado bug que no cerraba el dispositivo de sonido al salir.
- Solucionados bugs menores.

v0.2:
- Cdigo reescrito totalmente de SDL a Rlyeh Minilib con una ganancia estimada de un 15% de
  velocidad (Alex Kidd in Miracle World va casi a 100% a 166 Mhz).
- Mejora en el sonido, ahora va a 44100 Hz y suena ms "limpio".
- Includo control de volumen durante el juego.
- Includo visor de FPS opcional.
- Selector de ROMs ms rpido a peticin popular.
- Aadida configuracin personalizada para cada juego (se guarda automtica al lanzarlo).
- Guardada posicin del cursor en el selector de roms para no volver a empezar desde el principio
  al seleccionar una nueva ROM.
- Aadida combinacin para borrar roms desde el propio selector.
- Solucionados bugs menores.


v0.1:
-------
- Primera versin.
