v0.6.0
Our website received a big facelift, please check it out at https://rgbds.gbdev.io! Thanks to @ISSOtm and @avivace for the work on this.
While some pages have been moved around, all URLs under /docs
have been preserved.
Deprecated:
m: MACRO
syntax; useMACRO m
.__FILE__
and__LINE__
.rgbasm -h
and-L
will soon become the default behavior; please usergbasm -H
and-l
respectively to opt into the current behavior.rgbgfx -h
has been renamed to the less confusingrgbgfx -Z
.
Added:
- RGBGFX has been massively overhauled! Please check out the new docs for full details, but notably:
- The alpha channel is now handled in a sensible and useful way.
- Palettes can be manually specified without having to muck with PNG embedded palettes using
-c
! rgbgfx -r
can also "reverse" the process and generate a PNG from the binary data.- "At-files" allow storing the flags e.g. next to the image, instead of centralized within your Makefile/build script.
- State-of-the-art packing algorithm ensures optimal palette generation 😎
- Special thanks to @aaaaaa123456789 for
randtilegen
, used for testing; @eievui5, @MarkSixtyFour, and @Rangi42 for review and testing! - There's an egg somewhere in there?
- Unsigned right shift operator
>>>
! - Binary AND
&
can now be constant if applied to a symbol with the right alignment. rgbasm -Q
orOPT Q
configures the fixed-point precision, which is still 16 by default (e.g.-Q8
uses Q24.8).FMOD
function for fixed-point modulo.- Precise fixed-point literals like
12.34q8
override the currentQ
option value. - Fixed-point functions take an optional final argument to specify their precision, overriding the current
-Q
option. @
and_NARG
are considered undefined (e.g. byDEF
) when they have no value.rgbasm -P
allows automatically pre-including a file before the source file; for example, to define constants used throughout the codebase.SECTION(symbol)
evaluates to the name ofsymbol
's section.rgbasm -r
sets the maximum recursion depth, not the minimum failure depth (off by one).OPT r
.-Wunmapped-char=0/1/2
warning for characters not in the charmap. Level 1 ignores unmapped characters in a non-default charmap if it's empty, level 2 does not.\@
only increments its expanded value when used, so merely adding or removingMACRO
,REPT
, orFOR
blocks will not affect generated symbols.- RGBASM will warn if a command-line argument overrides a previous one, for example
-o
. - RGBLINK is able to link SDCC object files.
- RGBLINK will now report floating sections' names when using
-O
. - RGBLINK will omit symbol names from the .map file when using
-M
. - RGBLINK will not output anonymous labels in the .sym file, to comply with the spec.
- RGBLINK will report
EMPTY
space between sections in the .map file, and total used+empty space at the end. - A
.clang-format
, though it it only applied to C++ files; we are gradually transitioning away fromcheckpatch
style.
Removed:
PRINTT
,PRINTI
,PRINTV
,PRINTF
(usePRINT
/PRINTLN
instead)_PI
SET
as an assignment operator (use=
instead)rgbgfx -D
,-f
, and-F
were not useful anymore
Changed:
- RGBASM trigonometry functions now divide a circle into 1.0 turns, not 65536.0 so-called "binary degrees".
- Please prefer
rgbasm -I
overrgbasm -i
, for consistency with other tools (mainly C compilers);-i
will be phased out in a future release. man
pages are now all in a single directory; this affects the release tarballs!.map
files now have a more useful free/used space summary at the end.map
files are now indented using tabs (requested in #1012)
Fixed:
rgblink -S
rejected a lot of valid arguments.rgblink -O
could "forget" ROM0 if no such sections were defined, offsetting the entire file.- Whitespace is now trimmed in macro arguments, even after line continuations.
- All
*UTC*
symbols could contain local time instead on some systems. contrib/gbdiff.bash
correctly handles spaces in its arguments (oops)- Version number will always be properly updated when building with CMake.
- RGBASM now warns when specifying options that override eachother.
rgbasm -b
and-g
were broken.- Tests did not pass on the release tarballs.
- Math symbols could render incorrectly in
rgbasm(5)
. - RGBDS should be portable to more systems now.
- RGBASM has been optimized slightly yet again.
- Rephrased some documentation for clarity.