Skip to content

SDK v0.8

Compare
Choose a tag to compare
@github-actions github-actions released this 25 Aug 02:41
· 474 commits to main since this release

Breaking Changes

  • The compiler driver now only provides the default linker script (-Tlink.ld) if no -T flag is explicitly given on the command line. This allows completely overriding the default linker script.
  • The NES targets have been completely reworked. They now support a fairly broad subset of their respective mappers (NROM and MMC1). As far as possible, the linker scripts are configured by defining symbol values. Some configuration requires forming a custom linker script by INCLUDE-ing snippets to form the configuration. The linker scripts support PRG-ROM/(NV)RAM and CHR-ROM/(NV)RAM banking of various sizes, with the option to place the C sections into either NES RAM or PRG-RAM.

New Features

  • The linker now supports an OVERLAY output section flag to cause the VMAs of that section not to be checked for overlap, just like with the OVERLAY syntax. The OVERLAY syntax is unfortunately too restrictive for typical 6502 targets with banked ROMs, as it requires that the LMAs of banks with the same VMA be contiguous.

Misc

  • The _exit function defined in the exit-loop library is now a weak symbol. Exiting by infinite loop is a fallback used when there's no better option. Accordingly, it should be left open for users to supply a better one.
  • The SDK now runs NES tests in continuous integration using the Mesen emulator's test-runner mode. As a result, the NES linker scripts are fairly well tested now, better even than most of the rest of the SDK, which relies only on manual testing and the simulator target.