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 stringSIZEOF
applies to 8-and 16-bit registers, evaluating to their 1- or 2-byte size-W
warning diagnostics for RGBLINK, RGBFIX, and RGBGFXrgbasm -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
supportspng:
for PNG images as palette spec inputsrgbgfx -l/--base-palette
sets a base palette ID, like-b/--base-tiles
does for tilemap IDsrgbfix -m list
does 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
ALIGN
failure tells you what the actual alignment is - Invalid
rgblink -S/--scramble
orrgbfix -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.