-
-
Notifications
You must be signed in to change notification settings - Fork 212
GB_model_t
#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
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
andGB_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
andGB_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 isGB_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 aGB_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.