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 characterREADFILE(name[, maxlen])returns the contents of a file as a stringBYTELEN(str)returns the number of bytes in a stringSTRBYTE(str, idx)returns the idxth byte in a stringSIZEOFapplies to 8-and 16-bit registers, evaluating to their 1- or 2-byte size-Wwarning diagnostics for RGBLINK, RGBFIX, and RGBGFXrgbasm -MCflag which continues assembling even after a missing dependency (unlike-MG, which exits to let the dependency be generated before continuing)rgbasm -Pcan 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/--colorssupportspng:for PNG images as palette spec inputsrgbgfx -l/--base-palettesets a base palette ID, like-b/--base-tilesdoes for tilemap IDsrgbfix -m listdoes the same thing asrgbfix -m help(lists supported MBCs)- Documented some more historical deprecations/removals which had been left out of rgbasm-old(5)
Changed
- Error message for
ALIGNfailure tells you what the actual alignment is - Invalid
rgblink -S/--scrambleorrgbfix -f/--fix-specarguments 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
\0characters 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=256acting like=0 - Unterminated strings in linkerscripts would break subsequent parsing
- Invalid
rgblink -S/--scramblespec could crash - Out-of-bounds
rgbgfx -L/--slicecoordinates could crash - RGBGFX was skipping a step of its palette generation algorithm
rgbfix -mwith unlisted numeric values could crash- The
rgbds:latestDocker tag is correctly updated
Thanks to @Rangi42 and @avivace for the work done for this release.