maccer
macro preprocessor.
__REG_XXXX
special variables. The optimizer automatically transforms LD
into LDH
when necessary.
cgb.s
library.
get_sprite_tile()
and get_sprite_prop()
.
banks.c
example.
-Wl-yp0x146=0x03
flag.
STOP
instruction.
wait_vbl()
function.
set_win_data()
function so that it is consistent with other functions. This change requires adding 0x80
to the first parameter of this function call in existing programs.
cls()
function to the standard output library (reported by Helmut Schoettner).
-int8
and -int16
) to specify the size of the integer type (default is 8 bits, which produces shorter and faster code).
-Wl-yp0x143=0x80
).
reset()
function to reset the GB (restart the program's execution).
_cpu
that indicated the CPU of the machine on which the code is running (GB, Pocket GB, Color GB).
memset
, malloc
, calloc
, and free
are implemented).
set_bkg_tiles
.
paint.c
) illustrating this library.
LD (HLI),A LD (HLD),A LD A,(HLI) LD A,(HLD) ADD SP,offset LDHL SP,offset
gb-dtmf
example so that it compiles on DOS.
comm.c
example which illustrates how to use communication routines.
-Wl-yn="XXX"
flag (where X
is the name of the program, which can contain up to 16 characters in quotes, including spaces; on Unix, depending on your shell, you must add backslashes before quotes and spaces like in -Wl-yn=\"My\ Game\"
).
memcpy()
and hiramcpy()
functions). The compiler now automatically generates two symbol for the start and the end of each function, named start_X
and end_X
(where X
is the name of the function). This enables to calculate the length of a function when copying it to RAM.
ram_fn.c
example which illustrates how to copy functions to RAM and HIRAM.
irq.c
example which illustrates how to install interrupt handlers.
switch_ram_bank()
function). The switch_bank()
function has been renamed to switch_rom_bank()
. The banks.c
example has been updated. The flags for generating multiple bank images have been modified.
-Wl-g.OAM=#
flag (where #
is the address of the sprite ram). The sprite ram address must begin at an address multiple of 0x100, and is 0xA0 bytes long.
int
comparison.
delay()
function so that it takes a long parameter. It can be used to wait between 1 and 65536 milliseconds (0 = 65536). The pause()
function has been removed.
galaxy.c
) has been added. It is the C version of the space.s
example. sprite.c
has been removed.
banks
example).
-Wl-g.STACK=#
flag (where #
is the address of the stack pointer).
show_bkg()
) have been changed into macros (e.g. SHOW_BKG
).
delay()
function waits exactly 1 millisecond, and the pause()
waits 256 milliseconds.
lib/gb.lib
(lib\gb.lib
on DOS) text file contains a list of modules in which to look for undefined symbols. The linker will parse this file, and link your code with the required modules only. The stdio
library has been split in several object files, and only necessary modules will be added to your code, thus reducing its size.
-Wo-lccdir=GBDK-DIR
flag when invoking lcc.
\GBDK-2.0
directory on DOS machines.
int
is 8 bits.
long
is 16 bits.