Skip to content

Version 1.16.0

Latest

Choose a tag to compare

@AntonioND AntonioND released this 25 Dec 12:20
· 226 commits to master since this release
  • libnds:

    • glDeinit() has been implemented. This function frees all memory used by videoGL and stops the 3D hardware until glInit() is called again.
    • fsync() has been implemented. fflush() doesn't currently guarantee a flush to the disk, so fsync(fileno(fp)) can be used instead. @asiekierka
    • Function fatGetDefaultDrive() can now return "nand:/" if the application runs from NAND.
    • New definitions have been added for the window registers. The old ones didn't use the same names used by GBATEK.
    • Fix SOUNDXCNT_VOL_DIV_x defines.
    • Add defines GL_TRANS_YSORT and GL_ZBUFFERING for glFlush().
    • Define GL_SPECULAR_USE_TABLE has been added so that it can be added to glMaterial() instead of using magic numbers.
    • glMaterialShinyness() has been deprecated. The name is a typo, and the new name is glMaterialShininess(). The old name will be kept around forever because too many projects use it.
    • Add warning to material GL_SHININESS because it isn't used for anything.
    • Align the Huffman temporary buffer to a word just in case it's needed.
    • Stop expecting a size field in the GRF chunk of GRF files.
    • Support PIDX chunks in GRF files. This is used for Tex4x4 texture format.
  • DSWiFi:

    • Access points with hidden SSID (the name of the network) are now supported in DS mode (not in DSi mode yet). This only works for APs that send probe responses that contain a SSID (some APs don't, and they aren't supported).
  • Maxmod:

    • Fix mode C mixer. Version 1.14.0 did a partial fix, but it didn't update the volume divider bits of the audio channel control register correctly. This bug could be seen in the audio_modes example.
  • grit:

    • Remove size field from GRF chunks in GRF files. This was added by BlocksDS and it makes it harder to be compatible with other GRF files. Removing it doesn't affect anything because the RIFF chunk already has the size.
    • When exporting tiled backgrounds grit didn't check if the size of the tile set was too big. There was a check but it was incorrect. Now, grit will fail if it's trying to export too many tiles for the specified format. For example, affine backgrounds can only have up to 256 tiles. Previously, grit would export a broken tile map silently, which was hard to detect if there were too many similar tiles. If you were taking advantage of this broken check to overflow the tile index into th e tile flip bits of regular maps, use options -mB16:p4i12 -mRtp to achieve the same effect.
  • ndstool:

    • The CRC of the secure area wasn't calculated when generating the header. This is now fixed. @edo9300.
    • Support for GRF files has been removed. It was outdated and it didn't make sense to update it. This format was worse than PNG and BMP for static icons because it needs to be pre-converted by hand. Also, it didn't support animated icons like GIF files.
  • SDK:

    • The first official logo of BlocksDS has been created. Thanks to Megan Gozzard.

    • A new icon has been added to the SDK to be used as default icon for all ROMs. The old icon file is still available for projects that depend on it, but it has been updated to use the new icon. Thanks to @DieGo367.

    • dprintf() and vdprintf() have been added to picolibc.

    • Arguments -std=gnu17 and -std=gnu++17 have been removed from all default and template makefiles. They prevented users from changing this themselves.

    • dldipatch now returns the version string when it runs with argument -V (this change was applied to all other tools in version 1.15.0).

    • Examples:

      • Delete both examples about loading textures in GRF format and create a better example that doesn't hardcode any values (grf_textures_nitrofs).
      • Add example of using windows and DMA to create a circular window.
      • Add example of the material properties of 3D objects. It shows several combinations of properties to understand the effect they have on the resulting color of the polygons.
      • Add example of using the master brightness registers (not the LCD brightness).
      • Add example of drawing a single colored 3D quad.
      • Add example that compares modulation and decal 3D polygon modes.
      • Add example of using fog to fade 3D objects over 2D layers.
      • Add example of 3D antialiasing and edge marking.
      • Fix 3D box test example.
      • Set transparent color explicitly in grit files that convert tiled backgrounds. Index 0 is always transparent, so it's a good idea to tell grit which color to use as transparent so that we don't get surprises later.
      • Simplify background image used in the bg_rotation example. It was using way more tiles than the limit of 256, but it wasn't noticeable because many tiles looked similar.
      • Set backdrop color in some examples to black instead of leaving magenta, which is the transparent color of the background.
      • The graphics of the examples in the video_effects folder have been replaced by prettier images.
      • In 3D examples that draw cubes the old vertex order was incorrect (so culling wasn't working properly). It has been fixed.
      • A new example has been added to show how to draw a 3D cube and what's the effect of changing the culling setting.
      • Use GL helpers for texture coordinates instead of raw register writes.
      • Minor improvements to 3D examples.
      • The graphics files used in some 3D examples have been improved.
      • The example that loads a compressed texture has been simplified so that the concatenation happens at build time rather than at run time.
      • A new example has been added to show the different effects of using texture coordinates outside of bounds (stretch, wrap, wrap and flip).
      • Improve the example of drawing several 3D translucent objects to let the user break it in different ways and see the results.
      • Add an example of how to draw a polygon in which all faces are translucent and visible at the same time.
      • Add an example of how to use the 3D alpha test.
      • Add an example of how to draw a simple pre-converted display list.
      • Add an example of how to apply lighting to a 3D cube drawn manually. The previous examples used pre-converted display lists so the developer couldn't see the glNormal() commands.
      • The images used in some examples that combine 2D and 3D graphics have been improved.
      • In the BIOS decompression example, align the Huffman temporary buffer to a word just in case it's needed. Clear the destination buffer before each decompression to make sure that a decompression that doesn't write anything doesn't pass as a correct decompression. Use VRAM-safe compression for LZSS so that it works with WRAM and VRAM decompression routines.
    • Documentation:

      • The documentation has been completely reorganized. Old links to specific pages won't work.
      • The old Hugo theme has been replaced by one that supports different sections better (SDK documentation vs tutorial, for example).
      • A lot of icons and nicer formatting has been added to all the previous documentation. In particular, the setup instructions have been simplified.
      • The documentation now includes information about all the libraries provided in the BlocksDS and Wonderful Toolchain repositories. They weren't easily discoverable before.
      • Add a new page with documentation about filesystem support.
      • The tutorial has new sections about background and sprite extended palettes.
      • The tutorial has new chapters about 2D effects (blending, mosaic, etc), memory management, and 3D.
      • The tutorial has been merged into the SDK repository to unify the documentation of BlocksDS.
      • The tutorial is now licensed under the license CC BY-NC-SA 4.0.
    • Tests:

      • Make DLDI-on-ARM7 test work in DSi Slot-1 flashcarts.