diff --git a/nx/include/switch/services/set.h b/nx/include/switch/services/set.h index 04dcee4d..a511aff5 100644 --- a/nx/include/switch/services/set.h +++ b/nx/include/switch/services/set.h @@ -23,6 +23,17 @@ typedef enum { ColorSetId_Dark = 1, } ColorSetId; +/// Console Product Models +typedef enum { + SetSysProductModel_Invalid = 0, ///< Invalid Model + SetSysProductModel_Nx = 1, ///< Erista Model + SetSysProductModel_Copper = 2, ///< Erista "Simulation" Model + SetSysProductModel_Iowa = 3, ///< Mariko Model + SetSysProductModel_Hoag = 4, ///< Mariko Lite Model + SetSysProductModel_Calcio = 5, ///< Mariko "Simulation" Model + SetSysProductModel_Aula = 6, ///< Mariko Pro Model(?) +} SetSysProductModel; + /// IDs for Language. typedef enum { @@ -1390,9 +1401,9 @@ Result setsysSetDeviceNickname(const SetSysDeviceNickName *nickname); /** * @brief GetProductModel - * @param[out] out Output ProductModel. + * @param[out] model Output SetSysProductModel. */ -Result setsysGetProductModel(s32 *out); +Result setsysGetProductModel(SetSysProductModel *model); /** * @brief GetLdnChannel diff --git a/nx/source/services/set.c b/nx/source/services/set.c index dd1232dd..d3f1d482 100644 --- a/nx/source/services/set.c +++ b/nx/source/services/set.c @@ -637,8 +637,11 @@ Result setsysSetDeviceNickname(const SetSysDeviceNickName *nickname) { ); } -Result setsysGetProductModel(s32 *out) { - return _setCmdNoInOutU32(&g_setsysSrv, (u32*)out, 79); +Result setsysGetProductModel(SetSysProductModel *model) { + u32 product_model = 0; + Result rc = _setCmdNoInOutU32(&g_setsysSrv, &product_model, 79); + if (R_SUCCEEDED(rc) && model) *model = product_model; + return rc; } Result setsysGetLdnChannel(s32 *out) {