Table of Contents

Memory diagnostics (GBS0200–GBS0299)

WRAM, VRAM and ROM consumption - what your declarations reserve, and budgets that fail the build when exceeded.

GBS0201: Static allocation

Severity: Resource · Suppressible: yes · Shown live in the IDE

{0} reserves {1} bytes of WRAM.

GBS0202: Large struct passed by value

Severity: Resource · Suppressible: yes

'{0}' is {1} bytes and is passed by value, which copies it through the stack.

Pass it by 'ref' to copy a 2-byte pointer instead.

GBS0203: ROM allocation

Severity: Resource · Suppressible: yes · Shown live in the IDE

{0} reserves {1} bytes of ROM.

GBS0204: VRAM tile budget

Severity: Resource · Suppressible: yes

Background and window assets need {0} tiles of the {1} that region holds.

Background and window share one 256-tile region of video memory; sprites have their own. Every asset loaded at the same time has to fit together, and GB# counts them all because it can see them all. A total above the region is fine when screens replace each other at runtime - GB# cannot see load order, so it reports the sum rather than failing the build.

GBS0205: VRAM tile budget exceeded

Severity: Error · Suppressible: no

{0} needs {1} tiles by itself; the background/window region holds {2}.

No load order can make a single asset larger than the region work. Reduce its unique tile count - the asset table in the build report shows where the tiles are.

GBS0210: WRAM budget exceeded

Severity: Error · Suppressible: no

This game uses {0} bytes of work RAM; the declared budget is {1}.

The figure is what the linker placed, which includes the stack, shadow OAM and GBDK's own state as well as your static fields. Raise [assembly: MaxWRAM] if the budget was optimistic, or move data into ROM by making it 'static readonly'.

GBS0211: ROM budget exceeded

Severity: Error · Suppressible: no

The ROM is {0} bytes; the declared budget is {1}.

Raise [assembly: MaxROM], or reduce what the cartridge holds. The build report's asset table is usually where the bytes are.

GBS0212: ROM bank budget exceeded

Severity: Error · Suppressible: no

The cartridge declares {0} banks; the budget is {1}.

Raise [assembly: MaxROMBanks], or pack the existing banks more tightly. The build report shows how full each one is.