NightFox's Lib Ver. 20101128 - BETA
--------------------------------------------------------------------------------
- Corregidos algunos comentarios en los ejemplos de Sprites.
- Aadida la funcion NF_LoadColisionBg(); para cargar un fondo de colisiones.
- Aadida la funcion NF_UnloadColisionBg(); para descargar un fondo de
  colisiones de la RAM.
- Aadida la funcion NF_GetPoint(); para obtener el pixel de la coordenada dada
  en un fondo de colisiones. Si la coordenada esta fuera del mapa, devuelve 0.
- Modificadas las funciones NF_GetTile y NF_SetTile(); para que en caso de querer
  cambiar un tile fuera de rango, la orden sea ignorada.
- Aadido el error n119
- Aadida la funcion NF_Set3D(); para iniciar el modo 3D
- Aadida la funcion NF_InitOpenGL(); para iniciar el motor OpenGL
- Aadida la funcion NF_Init3dSpriteSys(); para iniciar el sistema Sprites 3D.
- Aadida la funcion NF_Vram3dSpriteGfx(); la cual copia a la VRAM un grafico
  para usarlo posteriormente en la creacion de un sprite 3D.
- Aadida la funcion NF_Free3dSpriteGfx(); la cual elimina de la VRAM el
  grafico especificado.
- Aadida la funcion NF_Vram3dSpriteGfxDefrag(); la cual reordena la VRAM
  de texturas.
- Aadida la funcion NF_Vram3dSpritePal(); la cual copia a la VRAM una paleta
  para poder usarla posteriormente en un sprite 3D.
- Aadida la funcion NF_Create3dSprite(); la cual crea un Sprite 3D en las
  coordenadas indicadas, usando la textura y paleta indicadas. El tamao de
  estos sprites puede ser de cualquier medida en potencia de 2 (entre 8 y 1024).
- Aadida la funcion NF_Delete3dSprite(); la cual borra de la pantalla el
  Sprite 3D con la ID indicada.
- Aadida la funcion NF_Sort3dSprites(); la cual reordena la prioridad de los
  Sprites 3D basandola en su ID.
- Aadida la funcion NF_Move3dSprite(); para mover un Sprite 3D
  por la pantalla.
- Aadida la funcion NF_Show3dSprite(); la cual muestra u oculta el sprite
  con la ID indicada.
- Aadida la funcion NF_Set3dSpriteFrame(); la cual cambia el frame del sprite
  indicado.
- Aadida la funcion NF_Update3dSprites(); la cual actualiza los Sprites 3D
  en la pantalla.
- Aadida la funcion NF_Rotate3dSprite(); la cual rota el sprite indicado
  sobre los ejes indicados.
- Aadida la funcion NF_Scale3dSprite(); la cual escala el sprite indicado
  sobre los ejes indicados.
- Aadidos ejemplos para el uso de 3D Sprites.



NightFox's Lib Ver. 20100901
--------------------------------------------------------------------------------
- Corregido un bug en la funcion NF_SetExBgPal(); la cual no
  funcionava correctamente. (Gracias a XIAO32 por el aviso).
- corregido tambien el ejemplo relacionado con las paletas extendidas.



NightFox's Lib Ver. 20100806
--------------------------------------------------------------------------------
- Corregido un bug en la funcion NF_CreateTiledBg(); que almacenava
  incorrectamente el tamao del fondo si este era exactamente de 512x256 o
  256x512 pixeles, lo que provocava que el scroll del mismo fuera erratico.



NightFox's Lib Ver. 20100730 - Summer Edition
--------------------------------------------------------------------------------
- Aadido el modo 2 en 2D para poder usar fondos tileados Affine.
- Aadida la funcion NF_InitAffineBgSys(); para inicializar los fondos Affine.
- Aadida la funcion NF_LoadAffineBg(); para la carga de fondos Affine,
  con tamaos de 256x256 y 512x512 pixeles.Los buffers para fondos tileados
  deben estar inicializados antes de usar esta funcion.
- Aadida la funcion NF_UnloadAffineBg(); para descargar de la RAM los fondos
  affine cargados. Simplemente llama a la funcion NF_UnloadTiledBg();
- Aadida la funcion NF_CreateAffineBg(); para la creacion de fondos Affine,
  con tamaos de 256x256 y 512x512 pixeles.
- Aadida la funcion NF_DeleteAffineBg(); para el borrado de fondos Affine.
- Aadida la funcion NF_AffineBgTransform(); que modifica los parametros de
  la matriz de transformacion del fondo affine.
- Aadida la funcion NF_AffineBgMove(); que desplaza y rota un fondo Affine.
- Aadida la funcion NF_AffineBgCenter(); que define el centro de rotacion del
  fondo Affine.
- Aadido el ejemplo para el uso de fondos Affine.
- Aadidos los errores 117 y 118.
- Modificada la funcion NF_SetTile(); para poder asignar tiles en formato U16.
- Se detecta un bug en la ultima version de GRIT convirtiendo fondos sin
  optimizar el tileset (fuentes). Se adjunta la version anterior y se modifica
  el BAT encargado de convertir las fuentes para que use la version antigua.
- Se recompila la libreria usando la ultima version de devkitarm.



NightFox's Lib Ver. 20100701
--------------------------------------------------------------------------------
- Modificada la funcion NF_GetTile(); devolviendo ahora un valor u16 en
  vez de u8.
- En el ejemplo "graphics/bg" eliminada la linea que cargaba dos veces el mismo
  fondo. (Gracias a Draco por el aviso).
- Modificado el mensage de error si falla la inicializacion de FAT o NitroFS,
  informando ahora de las posibles soluciones.
- Modificadas las splashscreens para dar los creditos de las librerias usadas.
- No se ha modificado la documentacion, dado que no se ha cambiado ninguna de
  las funciones de la libreria.



NightFox's Lib Ver. 20100312
--------------------------------------------------------------------------------
- Eliminado el soporte para EFS, dado que la libreria esta obsoleta.
- Aadido soporte para NitroFS, el cual viene de serie con el DevkitArm.
- Actualizados todos los ejemplos para que usen NitroFS en vez de EFS.
- Aadido el "Homebrew menu" para lanzar archivos NDS que usen NitroFS en
  flashcards no compatibles con pase de argumentos (int argc, char **argv).
  Puedes encontrarlo en la carpeta tools.



NightFox's Lib Ver. 20100304
--------------------------------------------------------------------------------
- Libreria recompilada para que funcione con devkitPro R28.

- Modificada la libreria EFS lib para corregir las advertencias durante la
  compilacion.

  efs_lib.c: In function 'CheckFile':
  efs_lib.c(305): warning: array subscript has type 'char'

  Se ha modidicado esta linea:
  ext[i] = tolower(ext[i]);

  Con estas:
  letter = ext[i];
  if (letter >= 65 && letter <= 90) letter += 32;
  ext[i] = letter;



NightFox's Lib Ver. 20100301
--------------------------------------------------------------------------------
- Aadida la funcion NF_LoadBMP(); la cual carga un archivo BMP de 8, 16 o 24
  bits en un slot de imagen de 16 bits.
- Aadido el parametro "alpha" a la funcion NF_Draw16bitsImage(); para decidir
  si el color magenta es o no transparente.
- Aadido los ejemplos de carga de archivos en formato BMP.
- Aadido el ejemplo de scroll de una imagen cargada desde un BMP.



NightFox's Lib Ver. 20100209
--------------------------------------------------------------------------------
- Aadido el ejemplo de zoom x2 con interpolacion.
- Aadido el ejemplo de zoom x3 con interpolacion.
- Aadida la funcion NF_Init8bitsBgBuffers(); que inicializa los buffers para
  fondos bitmap de 8 bits.
- Aadida la funcion NF_Reset8bitsBgBuffers(); que reinicializa los buffers de
  fondos bitmap de 8 bits.
- Aadida la funcion NF_Load8bitsBg(); que carga un fondo bitmap de 8 bits de
  hasta 256x256 pixeles.
- Aadida la funcion NF_Unload8bitsBg(); que borra de la ram un fondo bitmap
  de 8 bits, previamente cargado.
- Aadida la funcion NF_Copy8bitsBuffer(); la cual copia un fondo de 8 bits
  cargado en RAM a la VRAM o al BackBuffer.
- Aadida la funcion NF_Init8bitsBackBuffer(); que iniciliza el BackBuffer de
  8 bits.
- Aadida la funcion NF_Enable8bitsBackBuffer(); que habilita el BackBuffer de
  8 bits para la pantalla seleccionada.
- Aadida la funcion NF_Disble8bitsBackBuffer(); que deshabilita el BackBuffer
  de 8 bits, liberando la memoria RAM usada.
- Aadida la funcion NF_Flip8bitsBackBuffer(); la cual manda el Backbuffer de
  8 bits a la VRAM.
- Aadida la funcion NF_Load16bImgData(); que carga una imagen de 16 bits en
  RAM, con un tamao maximo de 256x256 pixeles. La imagen se carga en un slot
  de fondos de 16 bits.
- Aadida la funcion NF_Draw16bitsImage(); la cual dibuja una imagen cargada
  en RAM en el backbuffer de la pantalla indicada.



NightFox's Lib Ver. 20100203
--------------------------------------------------------------------------------
- Aadida la documentacion de la funcion void NF_RotateTileGfx();
- Aadido el Modo 5 en la funcion NF_Set2D();
- Aadida la funcion NF_InitBitmapBgSys(); la cual inicializa los fondos en
  modo bitmap, tanto en 8 como 16 bits.
- Aadida la funcion NF_Init16bitsBgBuffers(); el cual inicializa los buffer
  para guardar fondos en modo BITMAP.
- Aadida la funcion NF_Reset16bitsBgBuffers(); la cual borra el contenido de
  los buffers de fondos BITMAP.
- Aadida la funcion NF_Init16bitsBackBuffer(); la cual inicializa los
  backbuffers de 16bits.
- Aadida la funcion NF_Enable16bitsBackBuffer(); la cual habilita el 
  BackBuffer de 16 bits en la pantalla indicada.
- Aadida la funcion NF_Disble16bitsBackBuffer(); la cual borra y libera de
  la RAM el BackBuffer indicado.
- Aadida la funcion NF_Flip16bitsBackBuffer(); la cual copia el contenido del
  BackBuffer a la VRAM de la pantalla indicada.
- Aadida la funcion NF_Load16bitsBg(); la cual carga un bitmap de 16 bits
  convertido previamente con GRIT, siendo el tamao maximo 256x256.
- Aadida la funcion NF_Unload16bitsBg(); la cual borra del buffer en RAM
  una imagen cargada previamente.
- Aadida la funcion NF_Copy16bitsBuffer(); la cual copia los datos cargados
  en un buffer a la VRAM o al BackBuffer.
- Aadida la funcion NF_DmaMemCopy(); la cual copia bloques de memoria usando
  el DMA de manera segura (vacia el cache antes de manera automatica).
- Todas las funciones de copia de la libreria de RAM a VRAM ahora se realizan
  usando el canal DMA, lo que acelera el proceso en un 25% aproximadamente.




NightFox's Lib Ver. 20100130
--------------------------------------------------------------------------------
- Aadida la funcion void NF_RotateTileGfx(); la cual rota el grafico de un
  tile en la direccion indicada.
- Dado a la funcion anterior, las fuentes para texto no necesitan mas las
  partes rotadas de derecha e izquierda, pero se mantiene la compatibilidad
  con las que ya tubieras hechas.
- Modificada la funcion NF_LoadTextFont16(); para poder cargar
  fuentes rotadas.
- Modificada la funcion NF_CreateTextLayer16(); para poder crear capas con
  el texto rotado.
- Corregido Bug en la funcion NF_WriteText(); que calculava mal la coordenada
  Y en modo rotado 90 a la derecha.
- Aadido ejemplo de texto con fuentes 8x16 con rotacion.



NightFox's Lib Ver. 20100129
--------------------------------------------------------------------------------
- Aadido soporte para texto de 8x16 sin rotacion.
- Aadida la funcion NF_LoadTextFont16();
- Aadida la funcion NF_CreateTextLayer16();
- Aadida la funcion NF_WriteText16();
- Aadida la funcion NF_ClearTextLayer16();
- Aadido el ejemplo para textos de 8x16.



NightFox's Lib Ver. 20091231
--------------------------------------------------------------------------------
- Actualizado el Makefile a la version R27.
- Textos: Corregido un bug en la funcion NF_ClearTextLayer(); que provocaba
  desbordamientos de memoria al usarla (cosas de poner un bitshift mal por
  un despiste).



NightFox's Lib Ver. 20091207
--------------------------------------------------------------------------------
- Ejemplos: Aadido el ejemplo "Wave"
- Ejemplos: Aadido el ejemplo "Water reflect"
- Entorno: Libreria recompilada y probada con el devkitPro R27



NightFox's Lib Ver. 20091202
--------------------------------------------------------------------------------

- Fondos 2D: Aadida la funcion NF_GetTilePal(); que permite obtener el numero
  de paleta que usa un tile en concreto entre las 16 disponibles. Por defecto,
  los fondos solo cargan una paleta que se carga en el slot 0.
- Fondos 2D: Aadida la funcion NF_SetTilePal(); que permite cambiar el numero
  de paleta que usa un tile en concreto entre las 16 disponibles.
- Fondos 2D: Aadida la funcion NF_LoadExBgPal(); la cual carga en un slot en 
  RAM una paleta de fondos para poderla usar luego como paleta extendida.
- Fondos 2D: Aadida la funcion NF_UnloadExBgPal(); la cual borra de la RAM
  la paleta del slot especificado.
- Fondos 2D: Aadida la funcion NF_VramExBgPal(); la cual copia a la VRAM
  una paleta extendida cargada previamente en RAM.
- Fondos 2D: Aadida la funcion NF_SetExBgPal(); la cual selecciona que paleta
  extendida cargada en VRAM usara el fondo seleccionado.
- Textos: Aadida la funcion NF_DefineTextColor(); la cual permitira definir
  hasta 16 colores diferentes por cada capa de texto.
- Textos: Aadida la funcion NF_SetTextColor(); la cual permitira escoger con
  que color se escribira el texto de entre los 16 definidos por el usuario.
- Fondos 2D: Aadida la funcion NF_SetTileHflip(); que invierte el estado del
  FLIP horizontal de un tile del mapa especificado.
- Fondos 2D: Aadida la funcion NF_SetTileVflip(); que invierte el estado del
  FLIP vertical de un tile del mapa especificado.
- Ejemplos actualizados.
- Documentacion actualizada.



NightFox's Lib Ver. 20091127
--------------------------------------------------------------------------------

- Fondos 2D: Las funciones de manipulacion de paletas de han renombrado
  aadiendo el prefijo "Bg", ya que futuramente se aadiran las mismas
  para manipular las paletas de los sprites.
- Reorganizacion de algunas funciones dentro de los ficheros de la libreria.
- Aadidas varias trampas de debug en caso de querer usar las funciones de
  tiles o paletas sobre fondos no creados.
- Sprites: aadida la funcion NF_SpriteSetPalColor();
- Sprites: Aadida la funcion NF_SpriteEditPalColor();
- Sprites: Aadida la funcion NF_SpriteUpdatePalette();
- Sprites: Aadida la funcion NF_SpriteGetPalColor();
- Documentacion actualizada.
- Ejemplos actualizados.



NightFox's Lib Ver. 20091122
--------------------------------------------------------------------------------

- Texto: Aadido el soporte para los caracteres "", "", "" y ""
- Texto: Aadido el soporte para el caracter de control "\n" (nueva linea)
- Ejemplo: Actualizado el ejemplo de texto simple (uso de "\n")
- Fondos 2D: Aadida la funcion NF_SetPalcolor(); para cambiar un color de
  la paleta del fondo especificado. (edita la paleta en VRAM, lento)
- Fondos 2D: Aadida la funcion NF_EditPalColor(); para editar un color de
  la paleta del fondo especificado (edita el buffer en RAM).
- Fondos 2D: Aadida la funcion NF_UpdatePalette(); para actualizar en VRAM
  la paleta modificada en RAM
- Fondos 2D: Aadida la funcion NF_GetPalColor(); para obtener el valor de un
  color de la paleta cargada en RAM
  (Gracias a AntonioD por ayudarme en la manipulacion de paletas)
- Por hacer: Actualizar la documentacion con las funciones aadidas
- Ejemplo: Aadido ejemplo sobre la manipulacion de paletas



NightFox's Lib Ver. 20091115
--------------------------------------------------------------------------------

- Aadido el ejemplo de alpha blending



NightFox's Lib Ver. 20091101
--------------------------------------------------------------------------------

- Aadida la documentacion en Italiano (tide75)
- Aadido el ejemplo de fondos animados con tiles



NightFox's Lib Ver. 20091014
--------------------------------------------------------------------------------

- Aadida la funcion NF_SetTile();
- Aadido el ejemplo de cliente/servidor por UDP.
- Libreria de texto reescrita por completo.
- Eliminada la funcion NF_InitTextBuffers(); siendo inecesario su uso.
- Cambios en la funcion NF_LoadTextFont(); debiendo ahora de especificar el
  tamao en pixeles del mapa (256x256 por ejemplo).
- Aadidos varios ejemplos, todos ellos compilables.