Skip to content

v0.6.0

Compare
Choose a tag to compare
@github-actions github-actions released this 03 Oct 17:28
· 635 commits to master since this release

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; use MACRO m.
  • __FILE__ and __LINE__.
  • rgbasm -h and -L will soon become the default behavior; please use rgbasm -H and -l respectively to opt into the current behavior.
  • rgbgfx -h has been renamed to the less confusing rgbgfx -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 or OPT 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 current Q 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. by DEF) 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 of symbol'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 removing MACRO, REPT, or FOR 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 from checkpatch style.

Removed:

  • PRINTT, PRINTI, PRINTV, PRINTF (use PRINT/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 over rgbasm -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.