Skip to content

SGDK 1.80 (september 2022)

Compare
Choose a tag to compare
@Stephane-D Stephane-D released this 10 Sep 11:25
· 416 commits to master since this release

COMPILER

  • RESCOMP
    • added new OBJECTS resource (see rescomp.txt for more infos)
    • added new TILEMAP resource (see rescomp.txt for more infos)
    • added Tiled TMX map and object support (TILEMAP, MAP and OBJECT resources)
    • added Tiled TSX tileset support (TILESET resource)
    • added global RGB image support (see rescomp.txt for more infos)
    • added .pal file and RGB image support for PALETTE resource
    • added extension support so you can add your own custom resource (see rescomp.txt for more infos)
    • better management of duplicated resources
    • better compression logic (don't compress if gain is too low)
    • better logic for extended attributes from tile (MAP and TILEMAP resources)
    • improved tile indexing performance
    • improved compilation reports
    • some tweaks and fixes
  • XGMTOOL
    • added support to split VGM and PCM streams in VGM file (Thanks to Vic_)
    • added ZGM (compressed VGM) export support (Thanks to Vic_, useful for 32X dev)
  • MAKEFILE
    • added '-fms-extensions' flag to allow usage of anonymous embedded structures and enums
    • added '--register-prefix-optional,--bitwise-or' flags to help with assembly code (can use '|' as OR operator)
    • added 'ext.mk' and 'ext_lib.mk' files for makefile extension and customization
    • removed '-ggdb' flag for .s files compilation. It makes AS crashing when using 'dc.b' data declaration.
  • README
    • added 'useful tools' section
    • some rewrites and tweaks (thanks to MrBen89)
    • updated tutorial section
    • updated thanks section
    • added special thanks section

LIBRARY

  • OBJECT
    • added new 'pool' unit for easy and fast object pool management
    • added new 'object' unit for easy general object implementation
  • VDP
    • renamed many constants for better coherency in naming convention (ex: TILE_USERINDEX --> TILE_USER_INDEX)
    • renamed all GFX_xxx constants to VDP_xxx
    • added bit fields to VDPSprite structure for easier field manipulation (thanks to Carlos Aragones)
    • added many methods to manipulate these fields (thanks to Carlos Aragones)
  • MAP
    • removed 'palette' and 'tileset' fields from Map structure (better to handle that externally)
    • fixed allocateMap(..) method
  • MEM
    • added MEM_allocAt(..) function to allocate memory at a fixed address
    • splitted memory.h file --> memory.h and memory_base.h (easier to include in .s file)
  • SYS
    • faster H-int callback implementation (callback method need to be prefixed with HINTERRUPT_CALLBACK now)
    • added TSK_init() method for easier proper multi tasking system initialization
    • modified random() implementation to allow reproducible numbers sequence
  • Z80
    • added generic and customizable Z80 bus protection methods (Z80_useBusProtection / Z80_setBusProtection)
    • added generic Z80_setForceDelayDMA() so it can be used by all sound driver (not only reserved to XGM sound driver)
  • SOUND
  • TYPE
    • added volatile fix16/fix32 type (vfix16, vfix32, vf16, vf32)
    • changed 'bool' to 'u8' instead of 'u16' (don't waste RAM / ROM :p)
    • added p16 type (short pointer for low ROM / high RAM address)
  • DMA
    • increased a bit default DMA buffer size
  • added macros to create 'enum' compatible with assembly (.s) files
  • documentation fixes / cleanups / updates
  • removed old deprecated units and headers (vdp_pal and vdp_dma)
  • general cleanup, some refactoring..

SAMPLE

  • rewrote 'sonic' sample with better separation of different units.
  • added new 'platformer' sample (thanks to Gerard Gascon).
  • tweaked/fixed 'scaling' and 'wobble' samples (using the new fast h-int call)