Skip to content

GB_model_t

Lior Halphon edited this page Nov 30, 2024 · 4 revisions

Definition

#define GB_MODEL_FAMILY_MASK 0xF00
#define GB_MODEL_DMG_FAMILY 0x000
#define GB_MODEL_MGB_FAMILY 0x100
#define GB_MODEL_CGB_FAMILY 0x200
#define GB_MODEL_GBP_BIT 0x20
#define GB_MODEL_PAL_BIT 0x40
#define GB_MODEL_NO_SFC_BIT 0x80

typedef enum {
    // GB_MODEL_DMG_0 = 0x000,
    // GB_MODEL_DMG_A = 0x001,
    GB_MODEL_DMG_B = 0x002,
    // GB_MODEL_DMG_C = 0x003,
    GB_MODEL_SGB = 0x004,
    GB_MODEL_SGB_NTSC = GB_MODEL_SGB,
    GB_MODEL_SGB_PAL = GB_MODEL_SGB | GB_MODEL_PAL_BIT,
    GB_MODEL_SGB_NTSC_NO_SFC = GB_MODEL_SGB | GB_MODEL_NO_SFC_BIT,
    GB_MODEL_SGB_NO_SFC = GB_MODEL_SGB_NTSC_NO_SFC,
    GB_MODEL_SGB_PAL_NO_SFC = GB_MODEL_SGB | GB_MODEL_NO_SFC_BIT | GB_MODEL_PAL_BIT,
    GB_MODEL_MGB = 0x100,
    GB_MODEL_SGB2 = 0x101,
    GB_MODEL_SGB2_NO_SFC = GB_MODEL_SGB2 | GB_MODEL_NO_SFC_BIT,
    GB_MODEL_CGB_0 = 0x200,
    GB_MODEL_CGB_A = 0x201,
    GB_MODEL_CGB_B = 0x202,
    GB_MODEL_CGB_C = 0x203,
    GB_MODEL_CGB_D = 0x204,
    GB_MODEL_CGB_E = 0x205,
    // GB_MODEL_AGB_0 = 0x206,
    GB_MODEL_AGB_A = 0x207,
    GB_MODEL_GBP_A = GB_MODEL_AGB_A | GB_MODEL_GBP_BIT,
    GB_MODEL_AGB = GB_MODEL_AGB_A,
    GB_MODEL_GBP = GB_MODEL_GBP_A,
    // GB_MODEL_AGB_B = 0x208
    // GB_MODEL_AGB_E = 0x209
    // GB_MODEL_GBP_E = GB_MODEL_AGB_E | GB_MODEL_GBP_BIT,
} GB_model_t;

In model.h

Description

Each value in this enum represents a Game Boy model and SOC revision that can be passed to GB_init or GB_switch_model_and_reset. Commented-out values are currently not supported and have their values reserved for future use.

The values in this enum are:

  • GB_MODEL_DMG_*: A SOC revision of an original Game Boy.

  • GB_MODEL_SGB and GB_MODEL_SGB_NTSC: A Super Game Boy SOC inside a high-level-emulated SFC or NTSC SNES.

  • GB_MODEL_SGB_PAL: A Super Game Boy SOC inside a high-level-emulated PAL SNES.

  • GB_MODEL_SGB_NO_SFC and GB_MODEL_SGB_NTSC_NO_SFC: A Super Game Boy SOC, for use with integration with SFC or NTSC SNES emulators.

  • GB_MODEL_SGB_PAL_NO_SFC: A Super Game Boy SOC, for use with integration with PAL SNES emulators.

  • GB_MODEL_SGB2: A Super Game Boy 2 SOC inside a high-level-emulated SFC or SNES.

  • GB_MODEL_SGB2_NO_SFC: A Super Game Boy 2 SOC, for use with integration with SFC or SNES emulators.

  • GB_MODEL_MGB: A Game Boy Pocket SOC, also found in a Game Boy Light.

  • GB_MODEL_CGB_*: A SOC revision of a Game Boy Color. The recommended revision is GB_MODEL_CGB_E.

  • GB_MODEL_AGB_*: A SOC revision of a Game Boy Advance.

  • GB_MODEL_GBP_*: A SOC revision of a Game Boy Advance inside a Game Boy Player.

  • GB_MODEL_FAMILY_MASK: Use this mask to extract the model family of a GB_model_t value:

  • GB_MODEL_DMG_FAMILY: This model belongs to the original Game Boy and Super Game Boy line of SOCs.

  • GB_MODEL_MGB_FAMILY: This model belongs to the Game Boy Pocket and Super Game Boy 2 line of SOCs.

  • GB_MODEL_CGB_FAMILY: This model belongs to the Game Boy Color or Game Boy Advance lines of SOCs.

  • GB_MODEL_GBP_BIT: This bit will be set if this model is a Game Boy Advance SOC in a Game Boy Player.

  • GB_MODEL_PAL_BIT: This bit will be set if this model is a Super Game Boy inside a PAL console.

  • GB_MODEL_NO_SFC_BIT: This bit will be set if this model is a Super Game Boy that delegates emulation of the SFC or SNES side to outside of the core.

See Also

Clone this wiki locally