v0.9.2
May the 4th be with you! ⭐ 👾
Added
- New 0-indexed string functions (we plan to eventually deprecate the old 1-indexed ones):
STRFIND
andSTRRFIND
: likeSTRIN
andSTRRIN
STRCHAR
: likeCHARSUB
STRSLICE
: likeSTRSUB
, but taking start and stop indexes, instead of a start position and length
CHARCMP
: compares two strings by their charmap value sequencesCHARSIZE
: counts how many charmap values a single character would map toREVCHAR
: reverse-maps a value sequence to its charmap string (the values must have one unique corresponding charmap)- Allow macro
\<arg>
to take negative values to count arguments from the end (e.g.\<-2>
is the penultimate arg) - Allow the index of
bit/res/set
instructions to be determined at link time rgbgfx -B/--background
specifies a "background" color; tiles entirely of that color will be skipped in the graphic outputrgbfix -o/--output
can write its output to a different file than its input (must have one input file); thanks @jmillikin!
Changed
- Raw symbols do not undergo
EQUS
expansion (so#symbol
can be used instead of"{symbol}"
) - Some invalid instructions have more specific error messages than just "syntax error"
- Terser RGBASM output for sequences of unknown characters
- contrib/gbdiff.bash does not need a .sym file to be sorted
Fixed
- Macro names could be used as numeric symbols with value 0
- Map files were listing anonymous labels (as Unicode escape syntax)
- RGBGFX could segfault with transparent colors in
embedded
palettes - RGBGFX could segfault or give incorrect output for grayscale images with transparent colors
- RGBFIX expects nonzero
-r/--ram-size
for-m MBC6
(the one game that uses MBC6 has-r 3
) CMAKE_CXX_FLAGS_DEBUG
can be user-specified
Thanks to @Rangi42 and @ISSOtm for the work done for this release.