GBDK 2020 Docs
4.3.0
API Documentation for GBDK 2020
|
-tile_origin
to create a map with the tile index offsets built in.-yt
makebin flag?
old "gbz80" SDCC PORT name specified (in "-mgbz80:gb"). Use "sm83" instead. You must update your build settings.
mean?PORT
name for the Game Boy and related clones changed from gbz80
to sm83
in the SDCC version used in GBDK-2020 4.1.0 and later. You must change your Makefile, Build settings, etc to use the new name. Additional details in the Console Port and Platform Settings section. ?ASlink-Warning-Conflicting sdcc options: "-msm83" in module "_____" and "-mgbz80" in module "_____".
mean?gbz80
(meaning a version of SDCC / GBDK-2020 OLDER than GBDK-2020 4.1.0).sm83
(meaning GBDK-2020 4.1.0 or LATER).sm83
with GBDK-2020 4.1.0 or later so that the linker is able to use them with the other object files. Additional details in the Console Port and Platform Settings section. ?ASlink-Warning-Undefined Global ...
mean?z80instructionSize() failed to parse line node, assuming 999 bytes
mean?WARNING: possibly wrote twice at addr 4000 (93->3E)
Warning: Write from one bank spans into the next. 7ff7 -> 8016 (bank 1 -> 2)
You may have a overflow in one of your ROM banks. If there is more data allocated to a bank than it can hold it then will spill over into the next bank.
A common problem is when there is too much data in ROM0 (the lower 16K unbanked region) and it spills over into ROM1 (the first upper 16K banked region). Make sure ROM0 has 16K or less in it.
The warnings are generated by ihxcheck during conversion of an .ihx file into a ROM file.
See the section ROM/RAM Banking and MBCs for more details about how banks work and what their size is. You may want to use a tool such as romusage to calculate the amount of free and used space.
error: size of the buffer is too small
error: ROM is too large for number of banks specified
Your program is using more banks than you have configured in the toolchain. Either the MBC type was not set, or the number of banks or MBC type should be changed to provide more banks.
See the section setting_mbc_and_rom_ram_banks for more details.
warning 283: function declarator with no prototype
mean?func()
to func(void)
.func()
and func(void)
do not mean the same thing. ()
means any number of parameters, (void)
means no parameters. For example if a function with no arguments is declared with ()
then there may not be an error or warning when mistakenly trying to pass arguments to it. warning 126: unreachable code
warning 110: conditional flow changed by optimizer: so said EVELYN the modified DOG
volatile
keyword can be added to it's declaration. This removes some optimizations and tells the compiler the variable's value may change unexpectedly and cannot be predicted only based on the surrounding code. WARNING: overflow in implicit constant conversion
... developer cannot be verified, macOS cannot verify that this app is free from malware
mean?info 218: z80instructionSize() failed to parse line node, assuming 999 bytes
-debug
to turn on debug output. It covers most uses and removes the need to specify multiple flags such as -Wa-l -Wl-m -Wl-j
. Also see tools_debug. .sym
) compatible with an emulator?.noi
output (LCC argument: -Wl-j
or -debug
and then use -Wm-yS
with LCC (or -yS
with makebin directly). DATA
section and the Shadow OAM
location?_shadow_OAM=0xC000
and 240 bytes after it _DATA=0xC0A0
-Wl-g_shadow_OAM=0xC100
-Wl-b_DATA=0xc1a0
const
keyword. It's important to use the const keyword for read-only data. See const_gbtd_gbmb and const_array_data#included
into other C source files, or if there is a very large source file. float
type to do floating point math?fixed point
math (including the fixed type included in GBDK).