docs: Replace readme

This commit is contained in:
Antonio Niño Díaz 2023-03-31 18:26:43 +01:00
parent 83d3d6597d
commit 358c0cefb8
2 changed files with 109 additions and 29 deletions

109
readme.rst Normal file
View File

@ -0,0 +1,109 @@
NightFoxs Lib
==============
Introduction
------------
NightFoxs Lib is a library written in C to make it easier to develop for the
NDS. It depends on libnds by devkitPro, but it makes it much easier to use
backgrounds, sprites, collision maps, etc.
Features:
- 256 color tilemaps:
- You can load them from FAT or NitroFS, and you may load up to 32 in RAM.
- The size must be a multiple of 256 pixels.
- Extended palettes are supported (up to 16 palettes of 256 colors per bg).
- VRAM is setup so that you can use 96 KB for tiles and 32 KB for maps per
screen.
- "Infinite maps" are supported, using the technique "bank swap", which keeps
the map in RAM all the time and copies to VRAM only the part that is being
shown. The only limitation is the tileset size, which must not be over 96 KB
for all 4 layers.
- Scroll is supported, and parts of the map are loaded to VRAM as they are
needed.
- It is possible to show or hide backgrounds, unload them from RAM, modify
tiles in the map at runtime, change the palette, etc.
- 256 color sprites:
- You may load up to 256 objects (128 per screen) and 64 palettes.
- You can hide sprites, rotate them, change their size, flip them, etc.
- Animated sprites are supported, with no frame limit. You can choose if the
frames are stored in VRAM or only the image being shown in that moment.
- It is possible to modify the palettes at runtime to create visual effects.
- Text engine:
- Based on tiled backgrounds.
- It supports 8x8 and 8x16 pixel fonts.
- 256 color font are supported.
- You can use fonts already colored or you can define their colors at runtime.
- You can rotate them by 90 degrees and scroll them.
- You need to load a font per background layer that will use it.
- Sound:
- Basic support to load RAW audio files from FAT or NitroFS.
- It uses libnds to play them.
- You can load up to 32 sounds to RAM.
- Collision maps:
- The library supports collision maps that can be edited at runtime.
- Up to 32 mapx can be loaded at the same time in RAM.
- 8 and 16 bit backgrounds:
- Useful to display images with a higher detail that tiled maps.
- There are functions to load them and edit them.
- You may load up to 16 images in total.
- There is backbuffer support.
- Media:
- The library supports loading 8, 16, and 24 bit BMP files.
- 3D sprites:
- They use the 3D engine of the console to display up to 256 sprites.
- The maximum size is 1024x1024.
- You may rotate them, scale them, and define up to 62 transparency
configurations.
- WiFi:
- Basic WiFi support.
- Functions for basic UDP communications.
- They aren't part of the base lib (check the ``extras`` folder).
- Examples:
- Lots of examples are available to see how to use the library.
- Documentation:
- Available in PDF format in English and Spanish.
Setup
-----
1. Clone this repository. Create a symbolic link to it inside the devkitPro
folder in your system. For example, in Linux, create a symlink so that
``/opt/devkitpro/nflib`` points to the folder with NFlib:
.. code:: bash
ln -sT /path/to/nds_nflib /opt/devkitpro/nflib
If this doesn't work, copy the folder of NFlib to the devkitPro folder and
rename it to ``nflib``.
2. Go to the ``nflib`` folder and type this on the terminal:
.. code:: bash
make
3. That's it! Go to any of the examples and try to build it with ``make``.

View File

@ -1,29 +0,0 @@
[NOTA IMPORTANTE]
Dado que hace MUCHO tiempo que no actualizo la librería, esta no funciona «tal cual» en las últimas versiones de libNDS. Un recompilado de la librería usando la última versión de libNDS soluciona el problema. En el propio archivo comprimido de la librería hay un directorio para poder realizar esta recompilación.
NightFoxs Lib es una librería escrita en C que hemos desarrollado para facilitar la programación para DS. Basada en las Libnds de devkitArm, nuestra librería contiene funciones que hacen mucho más fácil el uso de fondos, sprites, mapas de colisiones, etc.
Las características básicas de la librería son:
- Soporte para fondos de tiles de 256 colores.
Puedes cargarlos desde FAT o NitroFS, pudiendo cargar hasta 32 fondos en RAM. El tamaño de los fondos debe ser en múltiplos de 256 pixeles. El sistema de fondos soporta paletas extendidas, pudiendo cargar hasta 16 paletas de 256 colores por fondo. La configuración de VRAM permite el uso de 96kb para tiles y 32kb para mapas por pantalla. El sistema también tiene soporte para mapas infinitos, usando la técnica «bank swap» manteniendo en RAM todo el mapa y copiando a la VRAM solo la parte necesaria. La única limitación es el tamaño del tileset, que no puede ser superior a 96kb entre las 4 capas. Este sistema también permite el scroll de los fondos, gestionando automáticamente que parte del mapa se carga en VRAM. También se incluyen funciones para mostrar u ocultar fondos, descargarlos de la RAM, cambiar tiles del mapa, modificar la paleta, uso de paletas extendidas, etc.
- Soporte para Sprites de 256 colores.
Se pueden cargar en RAM hasta 256 gráficos para sprites y 64 paletas. El sistema de sprites permite la creación de sprites, ocultarlos, rotarlos, cambiarles el tamaño, voltearlos, etc. Puedes colocar hasta 128 sprites por pantalla. El sistema también soporta sprites animados sin límite de frames, pudiendo escoger si los frames se mantienen en VRAM o solo se copia el frame mostrado. El sistema también soporta la modificación de paletas de los sprites para crear efectos.
- Motor de texto.
Basado en el sistema de fondos tileados, tiene soporte para fuentes de 8×8 y de 8×16 pixeles. Soporta fuentes de 256 colores (puedes usar fuentes ya coloreadas), definir tus propios colores, escoger la orientación del texto (normal, rotado a derecha, rotado a izquierda), realizar un scroll del texto, etc. Se debe cargar una fuente por cada capa de texto a usar (hasta 4 por pantalla).
- Sonido.
Soporte básico para la carga de archivos RAW desde FAT o NitroFS. Usa el engine de Libnds para reproducirlos. Puedes cargar hasta 32 sonidos en RAM.
- Mapas de colisión.
Muchos juegos requieren el uso de mapas de colisiones. Nuestra librería ofrece soporte de mapas de colisiones, editables desde código, pudiendo trabajar hasta con 32 mapas a la vez en RAM.
- Fondos en 8 y 16 bits.
Puedes usar fondos e imágenes de 8 y 16 bits si necesitas más calidad en pantalla. Se incluyen funciones para la carga y dibujado de estos fondos en pantalla. Puedes cargar hasta 16 imágenes en formato RAW de 8 o 16 bits. Este sistema también tiene soporte para backbuffer.
- Media.
La librería dispone funciones para la carga y visualizaciones de archivos BITMAP. Puedes cargar archivos de 8, 16 o 24 bits y mostrarlos en la pantalla (en modo 16 bits). La librería carga y convierte el archivo BMP por ti.
- 3d Sprites.
Funciones únicas para el uso del motor 3D de la consola, con el que se pueden crear hasta 256 Sprites en pantalla de manera simultánea con un tamaño máximo de 1024×1024, con posibilidad de rotación, escalado y hasta 62 unidades de transparencia diferentes.
- WIFI.
Soporte muy básico para la comunicación por wifi. Solo se incluyen unas funciones de prueba para la comunicación usando el protocolo UDP.
- Ejemplos.
La librería incluye más de 30 ejemplos listos para compilar, en los que se muestran prácticamente todas las funciones de la librería.
- Documentación.
Completa documentación en PDF, con una descripción completa de todas las funciones.