diff --git a/GB_model_t.md b/GB_model_t.md index 08d8805..422fe09 100644 --- a/GB_model_t.md +++ b/GB_model_t.md @@ -44,4 +44,37 @@ In `model.h` ## Description -TBD \ No newline at end of file +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 used with integration with SFC or NTSC SNES emulators +* `GB_MODEL_SGB_PAL_NO_SFC`: A Super Game Boy SOC, for used 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 used 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 + + +Additionally, the following macros can extract properties from a `GB_model_t` value: +* `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 +* [[Instance Allocation (GB_init)|Instance Allocation]] +* [[GB_switch_model_and_reset]] +* [[GB_get_model]] +* [[GB_get_state_model]] +* [[GB_is_cgb]] +* [[GB_is_hle_sgb]] +* [[GB_is_sgb]] \ No newline at end of file