Files
Horizon-OC/Source/OnDeviceConfig/include/constants.hpp
2025-10-06 19:18:21 -04:00

144 lines
4.8 KiB
C++

/*
* HOC Configurator - Constants
* Copyright (C) Dominatorul, Souldbminer
*/
#pragma once
#include <cstdint>
#include <string>
namespace Constants {
// Application info
constexpr const char* APP_VERSION = "2.0.0";
constexpr const char* APP_NAME = "HOC Configurator";
constexpr const char* APP_AUTHOR = "Dominatorul";
// Paths
constexpr const char* DEFAULT_KIP_PATH = "sdmc:/atmosphere/kips/loader.kip";
constexpr const char* CONFIG_DIR = "sdmc:/config/hoc-configurator";
constexpr const char* CONFIG_FILE = "sdmc:/config/hoc-configurator/config.ini";
constexpr const char* ATMOSPHERE_PATH = "sdmc:/atmosphere";
constexpr const char* SYSTEM_SETTINGS_INI = "sdmc:/atmosphere/config/system_settings.ini";
// Frequency arrays (in kHz)
constexpr uint32_t MARIKO_GPU_FREQS[] = {
76800, 153600, 230400, 307200, 384000, 460800, 537600, 614400,
691200, 768000, 844800, 921600, 998400, 1075200, 1152000, 1228800,
1267200, 1305600, 1344000, 1382400, 1420800, 1459200, 1497600, 1536000
};
constexpr uint32_t ERISTA_GPU_FREQS[] = {
76800, 153600, 230400, 307200, 384000, 460800, 537600, 614400,
691200, 768000, 844800, 921600, 998400, 1075200
};
constexpr uint32_t CPU_FREQS[] = {
1020000, 1122000, 1224000, 1326000, 1428000, 1581000, 1683000,
1785000, 1887000, 1963500, 2091000, 2193000, 2295000, 2397000,
2499000, 2601000, 2703000, 2805000, 2907000
};
constexpr uint32_t RAM_FREQS[] = {
0, 1600000, 1633000, 1666000, 1700000, 1733000, 1766000, 1800000,
1833000, 1866000, 1900000, 1933000, 1966000, 2000000, 2033000, 2066000,
2100000, 2133000, 2166000, 2200000, 2233000, 2266000, 2300000
};
// Voltage ranges
constexpr uint32_t MARIKO_GPU_MIN_VOLT = 480;
constexpr uint32_t MARIKO_GPU_MAX_VOLT = 960;
constexpr uint32_t MARIKO_GPU_MAX_VMIN = 700;
constexpr uint32_t ERISTA_GPU_MIN_VOLT = 700;
constexpr uint32_t ERISTA_GPU_MAX_VOLT = 1000;
constexpr uint32_t ERISTA_GPU_MAX_VMIN = 850;
constexpr uint32_t MARIKO_CPU_MIN_VMIN = 700;
constexpr uint32_t MARIKO_CPU_MAX_VMIN = 750;
constexpr uint32_t VOLTAGE_STEP = 5;
constexpr uint32_t GPU_OFFSET_MAX = 50;
// Thresholds
constexpr uint32_t MARIKO_MEME_THRESHOLD = 1536000;
constexpr uint32_t MARIKO_DANGEROUS_GPU_THRESHOLD = 1382400;
constexpr uint32_t MARIKO_UNSAFE_GPU_THRESHOLD = 1152000;
constexpr uint32_t ERISTA_DANGEROUS_GPU_THRESHOLD = 1151000;
constexpr uint32_t ERISTA_UNSAFE_GPU_THRESHOLD = 922000;
// RAM Types
const std::string RAM_TYPES[] = {
"Samsung AA-MGCL/MGCR",
"SK Hynix NEI/NEE/x267",
"Micron WT:B",
"Micron AUT:B",
"Micron WT:F",
"Samsung AM-MGCJ",
"Micron WT:E",
"Samsung AB-MGCL",
"SK Hynix NME",
"Samsung HB-MGCH"
};
// Fan curve profiles
namespace FanProfiles {
constexpr const char* V1_ERISTA = "V1_Erista";
constexpr const char* V2_MARIKO = "V2_Mariko";
constexpr const char* LITE_MARIKO = "Lite_Mariko";
constexpr const char* OLED_MARIKO = "OLED_Mariko";
}
// PSM (Battery) options
struct PSMOption {
const char* name;
uint32_t value;
};
constexpr PSMOption PSM_OPTIONS[] = {
{"1024mA", 0x400},
{"1280mA", 0x500},
{"1536mA", 0x600},
{"1660mA (Lite Default)", 0x67C},
{"1792mA", 0x700},
{"2048mA (Default)", 0x800},
{"2304mA (UNSAFE)", 0x900},
{"2560mA (UNSAFE)", 0xA00},
{"2816mA (DANGEROUS)", 0xB00},
{"3072mA (DANGEROUS)", 0xC00}
};
// Memory timing presets
struct TimingPreset {
uint32_t tRCD;
uint32_t tRP;
uint32_t tRAS;
uint32_t tRRD;
uint32_t tRFC;
uint32_t tRTW;
uint32_t tWTR;
uint32_t tREFI;
};
// Default timing preset
constexpr TimingPreset TIMING_DEFAULT = {0, 0, 0, 0, 0, 0, 0, 0};
// Samsung AA-MGCL/MGCR presets
constexpr TimingPreset TIMING_AAMGCL_CONSERVATIVE = {4, 4, 5, 5, 5, 5, 7, 6};
constexpr TimingPreset TIMING_AAMGCL_TIGHT = {4, 4, 8, 6, 5, 7, 8, 6};
// SK Hynix NEE presets
constexpr TimingPreset TIMING_NEE_CONSERVATIVE = {3, 3, 2, 2, 5, 5, 4, 6};
constexpr TimingPreset TIMING_NEE_TIGHT = {4, 4, 4, 3, 7, 6, 5, 6};
// Micron WT:B presets
constexpr TimingPreset TIMING_WTB_CONSERVATIVE = {4, 4, 5, 5, 2, 6, 5, 6};
constexpr TimingPreset TIMING_WTB_TIGHT = {6, 6, 7, 7, 2, 6, 5, 6};
// UI Constants
constexpr int MAX_VISIBLE_ITEMS = 20;
constexpr int MENU_START_Y = 7;
constexpr int SCREEN_WIDTH = 80;
constexpr int SCREEN_HEIGHT = 45;
}