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: MACROsyntax; useMACRO m.__FILE__and__LINE__.rgbasm -hand-Lwill soon become the default behavior; please usergbasm -Hand-lrespectively to opt into the current behavior.rgbgfx -hhas 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 -rcan 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 -QorOPT Qconfigures the fixed-point precision, which is still 16 by default (e.g.-Q8uses Q24.8).FMODfunction for fixed-point modulo.- Precise fixed-point literals like
12.34q8override the currentQoption value. - Fixed-point functions take an optional final argument to specify their precision, overriding the current
-Qoption. @and_NARGare considered undefined (e.g. byDEF) when they have no value.rgbasm -Pallows 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 -rsets the maximum recursion depth, not the minimum failure depth (off by one).OPT r.-Wunmapped-char=0/1/2warning 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, orFORblocks 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
EMPTYspace 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 fromcheckpatchstyle.
Removed:
PRINTT,PRINTI,PRINTV,PRINTF(usePRINT/PRINTLNinstead)_PISETas an assignment operator (use=instead)rgbgfx -D,-f, and-Fwere 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 -Ioverrgbasm -i, for consistency with other tools (mainly C compilers);-iwill be phased out in a future release. manpages are now all in a single directory; this affects the release tarballs!.mapfiles now have a more useful free/used space summary at the end.mapfiles are now indented using tabs (requested in #1012)
Fixed:
rgblink -Srejected a lot of valid arguments.rgblink -Ocould "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.bashcorrectly 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 -band-gwere 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.