May the 4th be with you! ⭐ 👾
Added
- New 0-indexed string functions (we plan to eventually deprecate the old 1-indexed ones):
STRFINDandSTRRFIND: likeSTRINandSTRRINSTRCHAR: likeCHARSUBSTRSLICE: 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/setinstructions to be determined at link time rgbgfx -B/--backgroundspecifies a "background" color; tiles entirely of that color will be skipped in the graphic outputrgbfix -o/--outputcan write its output to a different file than its input (must have one input file); thanks @jmillikin!
Changed
- Raw symbols do not undergo
EQUSexpansion (so#symbolcan 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
embeddedpalettes - RGBGFX could segfault or give incorrect output for grayscale images with transparent colors
- RGBFIX expects nonzero
-r/--ram-sizefor-m MBC6(the one game that uses MBC6 has-r 3) CMAKE_CXX_FLAGS_DEBUGcan be user-specified
Thanks to @Rangi42 and @ISSOtm for the work done for this release.