Table of Contents

Toolchain diagnostics (GBS0500–GBS0599)

The toolchain and the build itself: missing tools, project file problems, and settings that were asked for but could not be honoured.

GBS0501: GBDK not found

Severity: Error · Suppressible: no

Could not locate a GBDK-2020 installation. Looked in: {0}

Run 'gbsharp doctor --fix' (or 'pwsh tools/get-gbdk.ps1' in a checkout) to fetch the pinned toolchain, set the GBDK_HOME environment variable, or pass --gbdk-path.

GBS0502: Backend compilation failed

Severity: Error · Suppressible: no

GBDK failed to compile the generated C (exit code {0}). Generated source: {1}

This is usually a GB# code generation bug. The generated C has been kept so it can be inspected.

GBS0503: Invalid project file

Severity: Error · Suppressible: no

{0}: {1}

GBS0504: No source files

Severity: Error · Suppressible: no

No .cs files found under '{0}'.

GBS0505: No emulator configured

Severity: Warning · Suppressible: no

No emulator is configured for this project.

Set "emulator" in the project file to the path of SameBoy, BGB or Emulicious.

GBS0506: Emulator could not be launched

Severity: Error · Suppressible: no

Could not launch '{0}': {1}

The ROM was built and is still on disk. Check the path, or set "emulator" in the project file to the emulator you want.

GBS0507: Project file drift

Severity: Warning · Suppressible: yes

'{0}' would let an editor compile a different set of files than GB# builds: {1}.

GB# always builds from gbsharp.json's own file list, never from the .csproj. Update the csproj, or gbsharp.json's "exclude", so an editor sees the same files GB# does.

GBS0508: Diagnostic cannot be suppressed

Severity: Warning · Suppressible: no

{0} cannot be suppressed or downgraded, and the setting for it was ignored.

GB# stops the build on this diagnostic because it cannot generate code for what it describes; letting it through would produce C that compiles and does the wrong thing. Costs and resource notes can be configured freely.

GBS0510: Bank usage unavailable

Severity: Info · Suppressible: no

Per-bank ROM and WRAM usage could not be read ({0}).

The ROM was still built. GB# reads what the linker actually placed using GBDK's 'romusage' tool; check that the toolchain install is complete.

GBS0511: Library not found

Severity: Error · Suppressible: no

{0}: "libraries" names '{1}', which does not exist.

GB# links whatever is declared under "libraries" without inspecting it - check the path is correct and relative to the project directory, and that the file has been built.

GBS0512: Include not found

Severity: Error · Suppressible: no

{0}: "includes" names '{1}', which does not exist.

Headers declared under "includes" are added to the generated C, which is how a [Native] method reaches a function the framework does not wrap - check the path is correct and relative to the project directory.

GBS0513: Cartridge RAM does not match the mapper

Severity: Warning · Suppressible: yes

{0}: {1}

The ROM still builds; its header just describes a cartridge that was never made. Leave "ramBanks" unset to let the mapper decide, or name a mapper that matches the save RAM you want.