Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

NightFox’s Lib: Difference between revisions

From GameBrew
No edit summary
No edit summary
 
(21 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Infobox DS Homebrews
{{Infobox DS Homebrews
|title=NFlib
|title=NightFox’s Lib
|image=Nflib4.png
|image=Nflib4.png
|description=An alternative to PAlib.
|description=An alternative to PAlib.
|author=KnightFox (NightFox)
|author=KnightFox (NightFox)
|lastupdated=2020/10/08
|lastupdated=2024/09/11
|type=Development libraries
|type=Development
|version=2020
|version=1.1.5
|license=Mixed
|license=Mixed
|download=https://dlhb.gamebrew.org/dshomebrew/nflib.7z
|download=https://dlhb.gamebrew.org/dshomebrew2/nflib.7z
|website=https://nightfoxandco.com/?page_id=52
|website=https://nightfoxandco.com/?page_id=52
|source=https://github.com/knightfox75/nds_nflib
|source=https://github.com/knightfox75/nds_nflib
|donation=https://www.buymeacoffee.com/knightfox75
}}
}}
NightFox’s Lib is a library written in C that is  developed to facilitate programming for the DS. Based on Libnds of devkitArm, our library contains functions witch make the use of backgrounds, sprites, collision maps, etc much easier.
NightFox’s Lib (NFlib) is a library written in C that is  developed to facilitate programming for the DS. Based on Libnds of devkitArm, our library contains functions witch make the use of backgrounds, sprites, collision maps, etc much easier.
 
'''Note from developer:'''
 
The library has not been updated for an extended period of time, it does not work as-is in the [https://devkitpro.org/ latest versions of libNDS]. A recompile of the library using the latest version of libNDS solves the problem. In the library's own compressed file there is a directory to perform this recompilation.


==Features==
==Features==
* Support for 256 color Tiled Backgrounds.
* 256 color tilemaps:
* Support for 256 color Sprites.
** You can load them from FAT or NitroFS, and you may load up to 32 in RAM.
* Text Engine.
** The size must be a multiple of 256 pixels.
* Sound.
** Extended palettes are supported (up to 16 palettes of 256 colors per bg).
* Collision maps.
** VRAM is setup so that you can use 96 KB for tiles and 32 KB for maps per screen.
* 8 and 16 bits backgrounds.
** "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.
* Media.
** Scroll is supported, and parts of the map are loaded to VRAM as they are needed.
* 3D Sprites.
** It is possible to show or hide backgrounds, unload them from RAM, modify tiles in the map at runtime, change the palette, etc.
* WIFI.
* 256 color sprites:
* Examples.
** You may load up to 256 objects (128 per screen) and 64 palettes.
* Documentation.
** 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.
* Examples:
** Lots of examples are available to see how to use the library.
* Documentation:
** Available in PDF format in English and Spanish.
* License:
** The library is licensed under the MIT license.
** The assets in this repository are licensed under the CC-BY-4.0 license.
** The examples are licensed under the CC0 license.


==User guide==
==Changelog==
Inside the folder there is a folder LIB NF_LIB within folders icon, Makefile, Source and WiFi. In the root of your project (where the default makefile) ICON.BMP copy files and Makefile that may need (they are in separate folders).  
'''1.1.5'''
 
*Update BlocksDS makefiles.
Then copy the entire contents of the source folder in your source folder. To use the library only have to include # include "nf_lib.h" in code and # include "nf_wifi.h" if want to use wifi.
'''1.1.4'''
 
* Fix "\n" not working in NF_WriteText() and NF_WriteText16().
You will find a complete documentation in PDF, with a complete description of all functions.
* Stop documenting old extensions of custom maps and fonts, use the default grit extensions instead.
'''1.1.3'''
* Improve error checks when loading files from the filesystem.
* The tilechange example has been fixed.
* BlocksDS is now defined as the recommende toolchain to use with NFLib.
'''1.1.2'''
*Fix C++ builds with BlocksDS.
'''1.1.1'''
*Support files with the default extensions generated by grit instead of the old custom extensions of NFlib (img, pal, map instead of fnt, dat and cmp).
'''1.1'''
* Translate examples comments in library to English.
* Cleanup examples and library files.
* Improve deletion code of 3D sprites
* Update BlocksDS makefiles.
* A few minor fixes.
'''1.00'''
* Add original assets and conversion scripts to all examples.
* Start using semver for the version number of the library.
* Big cleanup of the library headers.
* Switch documentation to Doxygen.
* Move WiFi functions to the main library.
* Added support for BlocksDS.


==External links==
==External links==
* Official website - https://nightfoxandco.com
* Author's website - https://nightfoxandco.com
* GitHub - https://github.com/knightfox75/nds_nflib
* GitHub - https://github.com/knightfox75/nds_nflib


[[Category:DS homebrew applications]]
 
[[Category:PC utilities for DS]]
[[Category:PC utilities for DS]]

Latest revision as of 03:32, 15 September 2024

NightFox’s Lib
Nflib4.png
General
AuthorKnightFox (NightFox)
TypeDevelopment
Version1.1.5
LicenseMixed
Last Updated2024/09/11
Links
Download
Website
Source
Support Author

NightFox’s Lib (NFlib) is a library written in C that is developed to facilitate programming for the DS. Based on Libnds of devkitArm, our library contains functions witch make the use of backgrounds, sprites, collision maps, etc much easier.

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.
  • Examples:
    • Lots of examples are available to see how to use the library.
  • Documentation:
    • Available in PDF format in English and Spanish.
  • License:
    • The library is licensed under the MIT license.
    • The assets in this repository are licensed under the CC-BY-4.0 license.
    • The examples are licensed under the CC0 license.

Changelog

1.1.5

  • Update BlocksDS makefiles.

1.1.4

  • Fix "\n" not working in NF_WriteText() and NF_WriteText16().
  • Stop documenting old extensions of custom maps and fonts, use the default grit extensions instead.

1.1.3

  • Improve error checks when loading files from the filesystem.
  • The tilechange example has been fixed.
  • BlocksDS is now defined as the recommende toolchain to use with NFLib.

1.1.2

  • Fix C++ builds with BlocksDS.

1.1.1

  • Support files with the default extensions generated by grit instead of the old custom extensions of NFlib (img, pal, map instead of fnt, dat and cmp).

1.1

  • Translate examples comments in library to English.
  • Cleanup examples and library files.
  • Improve deletion code of 3D sprites
  • Update BlocksDS makefiles.
  • A few minor fixes.

1.00

  • Add original assets and conversion scripts to all examples.
  • Start using semver for the version number of the library.
  • Big cleanup of the library headers.
  • Switch documentation to Doxygen.
  • Move WiFi functions to the main library.
  • Added support for BlocksDS.

External links

Advertising: