Skip to content

v0.7.0

Compare
Choose a tag to compare
@github-actions github-actions released this 31 Dec 23:59
· 490 commits to master since this release

Starting with this release, we publish statically-linked Linux binaries! We also provide a Dockerfile to build RGBDS.

Deprecated:

  • Defining symbols without using DEF (use {interpolation} if you relied on EQUS expansion for defined symbol names)
  • RGBASM -H/--nop-after-halt and -l/-auto-ldh options (which are now off by default)

Added:

  • Multiple instructions can go on one line, separated by ::
  • #"raw strings" don't process any escapes (not even interpolation or macro args!)
  • DS ALIGN[size, offset] to insert padding until the next alignment boundary within the same section
  • RGBASM allows defining local labels for scopes that aren't active
  • INCHARMAP function to check if a string matches a charmap value
  • SIZEOF and STARTOF can now take section types like WRAM0 as argument
  • ENDSECTION explicitly ends a section
  • DS in RGBLINK linker scripts
  • OPTIONAL sections in RGBLINK linker scripts
  • FLOATING addresses in RGBLINK linker scripts (should improve SDCC interop)
  • RGBASM -X/--max-errors stops after too many errors, with a default of 100
  • Linker scripts support ALIGN alignment, offset
  • RGBFIX warns when SGB compatibility is set with the wrong "old licensee", even if not setting it via RGBFIX itself
  • RGBGFX can generate a palette from a spec, without an input image
  • RGBGFX forces transparent colors to take slot #0 in all palettes
  • RGBGFX -O/--group-outputs bases automatic output filenames on the output path, instead of the input path

Removed:

  • name: MACRO syntax (use MACRO name instead)
  • Escaped commas "\," inside strings (not necessary in macro arguments)
  • __FILE__ and __LINE__
  • Exported labels cannot have a space between their two colons (Label: : is invalid)

Changed:

  • RGBASM -Wtruncation=1 will not warn about 8-bit ~$FF or 16-bit ~$FFFF values
  • The memory usage summary in .map files is now placed at the top of the file
  • Alignment offsets in RGBASM can now be negative (ALIGN 8, -1 is equivalent to ALIGN 8, 255)
  • RGBGFX's --output-* options have been renamed to --auto-* for clarity
  • RGBLINK .sym files sort symbols at the same address by their locality
  • RGBLINK -S/--scramble prioritizes higher banks
  • RGBGFX's long --output-* flags are renamed to --auto-*
  • All programs show usage help when given missing or incorrect command-line arguments
  • Add --only-free and --help options to test scripts
  • PURGE arguments can go in any order
Fixed:
  • RGBASM preserves the value of \@ through INCLUDEd files
  • FOR loops, in some edge cases, could loop with unexpected values
  • PUSHO and POPO now save and restore the r option
  • ENDL now restores the label scope from before LOAD
  • Anonymous labels are never exported anymore, as doing so could cause link errors
  • -1 >>> 32 now equals 0, not -1
  • Document ATAN2 to have argument order (y, x)
  • RGBLINK's -w flag properly coerces WRAMX sections to WRAM0
  • Fix off-by-one error in RGBLINK -S/--scramble argument validation
  • RGBGFX could crash on some images with alpha transparency
  • RGBGFX --color-curve now works as it always should have
  • RGBGFX properly detects tiles with more than 4 colors
  • RGBGFX -r/--reverse gave incorrect output with -d/--depth 1
  • RGBGFX ignored -L/--slice if -u/--unique-tiles wasn't also passed
  • RGBGFX ignored -c/--colors with -r/--reverse
  • RGBGFX outputs a palette map to the right filename
  • Fix formatting errors in documentation
  • Fix incorrect options in RGBGFX zsh completions
  • Made testing scripts a little more robust