Skip to content

v0.9.4

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 31 Jul 12:14
· 26 commits to master since this release

We're still not following SemVer yet, so this release has a lot in it even though it's "only" a patch-level update -- comparable to v0.3.9, v0.4.2, v0.5.2...

Added

  • Inline [[ fragment literals ]] can be used instead of labels for one-off data
  • 'character' constants are now preferred to single-character "strings" for getting the numeric value of a character
  • READFILE(name[, maxlen]) returns the contents of a file as a string
  • BYTELEN(str) returns the number of bytes in a string
  • STRBYTE(str, idx) returns the idxth byte in a string
  • SIZEOF applies to 8-and 16-bit registers, evaluating to their 1- or 2-byte size
  • -W warning diagnostics for RGBLINK, RGBFIX, and RGBGFX
  • rgbasm -MC flag which continues assembling even after a missing dependency (unlike -MG, which exits to let the dependency be generated before continuing)
  • rgbasm -P can be specified multiple times to pre-include multiple files
  • Linkerscripts support 0x/0b/0o/& numeric prefixes, _ numeric separators, and "\0" characters, same as assembly
  • rgbgfx -c/--colors supports png: for PNG images as palette spec inputs
  • rgbgfx -l/--base-palette sets a base palette ID, like -b/--base-tiles does for tilemap IDs
  • rgbfix -m list does the same thing as rgbfix -m help (lists supported MBCs)
  • Documented some more historical deprecations/removals which had been left out of rgbasm-old(5)

Changed

  • Error message for ALIGN failure tells you what the actual alignment is
  • Invalid rgblink -S/--scramble or rgbfix -f/--fix-spec arguments are a fatal error, not a warning

Fixed

  • Aligning a section first to one size and then to a greater size could fail even when the new alignment is compatible
  • Some string functions treated \0 characters in strings as the end of the string
  • Overflowing exponent operator ** could cause undefined behavior
  • Invalid warning flag parameters could be silently accepted, e.g. rgbasm -Wtruncation=256 acting like =0
  • Unterminated strings in linkerscripts would break subsequent parsing
  • Invalid rgblink -S/--scramble spec could crash
  • Out-of-bounds rgbgfx -L/--slice coordinates could crash
  • RGBGFX was skipping a step of its palette generation algorithm
  • rgbfix -m with unlisted numeric values could crash
  • The rgbds:latest Docker tag is correctly updated

Thanks to @Rangi42 and @avivace for the work done for this release.