GBDK 2020 Docs API Documentation for GBDK 2020

Macros | Functions
sgb.h File Reference

Go to the source code of this file.

## Macros
#define | SGB_PAL_01 0x00U
#define | SGB_PAL_23 0x01U
#define | SGB_PAL_03 0x02U
#define | SGB_PAL_12 0x03U
#define | SGB_ATTR_BLK 0x04U
#define | SGB_ATTR_LIN 0x05U
#define | SGB_ATTR_DIV 0x06U
#define | SGB_ATTR_CHR 0x07U
#define | SGB_SOUND 0x08U
#define | SGB_SOU_TRN 0x09U
#define | SGB_PAL_SET 0x0AU
#define | SGB_PAL_TRN 0x0BU
#define | SGB_ATRC_EN 0x0CU
#define | SGB_TEST_EN 0x0DU
#define | SGB_ICON_EN 0x0EU
#define | SGB_DATA_SND 0x0FU
#define | SGB_DATA_TRN 0x10U
#define | SGB_MLT_REQ 0x11U
#define | SGB_JUMP 0x12U
#define | SGB_CHR_TRN 0x13U
#define | SGB_PCT_TRN 0x14U
#define | SGB_ATTR_TRN 0x15U
#define | SGB_ATTR_SET 0x16U
#define | SGB_MASK_EN 0x17U
#define | SGB_OBJ_TRN 0x18U

## Functions
UINT8 | sgb_check (void)
void | sgb_transfer (unsigned char *packet)
void | sgb_transfer_nowait (unsigned char *packet)

## Detailed Description

Super Gameboy definitions.

See the example SGB project for additional details.

## Macro Definition Documentation

## ◆ SGB_PAL_01

#define SGB_PAL_01 0x00U

SGB Command: Set SGB Palettes 0 & 1

## ◆ SGB_PAL_23

#define SGB_PAL_23 0x01U

SGB Command: Set SGB Palettes 2 & 3

## ◆ SGB_PAL_03

#define SGB_PAL_03 0x02U

SGB Command: Set SGB Palettes 0 & 3

## ◆ SGB_PAL_12

#define SGB_PAL_12 0x03U

SGB Command: Set SGB Palettes 1 & 2

## ◆ SGB_ATTR_BLK

#define SGB_ATTR_BLK 0x04U

SGB Command: Set color attributes for rectangular regions

## ◆ SGB_ATTR_LIN

#define SGB_ATTR_LIN 0x05U

SGB Command: Set color attributes for horizontal or vertical character lines

## ◆ SGB_ATTR_DIV

#define SGB_ATTR_DIV 0x06U

SGB Command: Split screen in half and assign separate color attribes to each side and the divider

## ◆ SGB_ATTR_CHR

#define SGB_ATTR_CHR 0x07U

SGB Command: Set color attributes for separate charactersSet SGB Palette 0,1 Data

## ◆ SGB_SOUND

#define SGB_SOUND 0x08U

SGB Command: Start and stop a internal sound effect, and sounds using internal tone data

## ◆ SGB_SOU_TRN

#define SGB_SOU_TRN 0x09U

SGB Command: Transfer sound code or data to the SNES APU RAM

## ◆ SGB_PAL_SET

#define SGB_PAL_SET 0x0AU

SGB Command: Apply (previously transferred) SGB system color palettes to actual SNES palettes

## ◆ SGB_PAL_TRN

#define SGB_PAL_TRN 0x0BU

SGB Command: Transfer palette data into SGB system color palettes

## ◆ SGB_ATRC_EN

#define SGB_ATRC_EN 0x0CU

SGB Command: Enable/disable Attraction mode. It is enabled by default

## ◆ SGB_TEST_EN

#define SGB_TEST_EN 0x0DU

SGB Command: Enable/disable test mode for "SGB-CPU variable clock speed function"

## ◆ SGB_ICON_EN

#define SGB_ICON_EN 0x0EU

SGB Command: Enable/disable ICON functionality

## ◆ SGB_DATA_SND

#define SGB_DATA_SND 0x0FU

SGB Command: Write one or more bytes into SNES Work RAM

## ◆ SGB_DATA_TRN

#define SGB_DATA_TRN 0x10U

SGB Command: Transfer code or data into SNES RAM

## ◆ SGB_MLT_REQ

#define SGB_MLT_REQ 0x11U

SGB Command: Request multiplayer mode (input from more than one joypad)

## ◆ SGB_JUMP

#define SGB_JUMP 0x12U

SGB Command: Set the SNES program counter and NMI (vblank interrupt) handler to specific addresses

## ◆ SGB_CHR_TRN

#define SGB_CHR_TRN 0x13U

SGB Command: Transfer tile data (characters) to SNES Tile memory

## ◆ SGB_PCT_TRN

#define SGB_PCT_TRN 0x14U

SGB Command: Transfer tile map and palette data to SNES BG Map memory

## ◆ SGB_ATTR_TRN

#define SGB_ATTR_TRN 0x15U

SGB Command: Transfer data to (color) Attribute Files (ATFs) in SNES RAM

## ◆ SGB_ATTR_SET

#define SGB_ATTR_SET 0x16U

SGB Command: Transfer attributes from (color) Attribute Files (ATF) to the Game Boy window

## ◆ SGB_MASK_EN

#define SGB_MASK_EN 0x17U

SGB Command: Modify Game Boy window mask settings

## ◆ SGB_OBJ_TRN

#define SGB_OBJ_TRN 0x18U

SGB Command: Transfer OBJ attributes to SNES OAM memory

## Function Documentation

## ◆ sgb_check()

UINT8 sgb_check | ( | void |  | ) |

Returns a non-null value if running on Super GameBoy

## ◆ sgb_transfer()

void sgb_transfer | ( | unsigned char * | packet | ) |

Transfer a SGB packet

Parameters

  packet | Pointer to buffer with SGB packet data.

The first byte of packet should be a SGB command, then up to 15 bytes of command parameter data.

See the `sgb_border` GBDK example project for a demo of how to use these the sgb functions.

See also
  sgb_check()

## ◆ sgb_transfer_nowait()

void sgb_transfer_nowait | ( | unsigned char * | packet | ) |

Transfer a SGB packet without the 60 ms / 4 frame delay at the end (the delay time is required between consecutive SGB packets)

Parameters

  packet | Pointer to buffer with SGB packet data.

See also
  sgb_transfer()