I have no idea if this actually works but here's the code:
ConfigMagicApp.cpp
CODE
void ConfigMagicApp::SectionHandler()
{
switch(XConfSections)
{
case(STARTUP_SCREEN):
StartupScreen();
break;
case(WARNING_SCREEN):
WarningScreen();
break;
case(LOAD_XBOX_EEPROM_SCREEN):
Load_XBOX_EEPROM_Screen();
break;
case(WRITE_XBOX_EEPROM_SCREEN):
Write_XBOX_EEPROM_Screen();
break;
case(LOAD_BIN_EEPROM_SCREEN):
Load_BIN_EEPROM_Screen();
break;
case(LOAD_CFG_EEPROM_SCREEN):
Load_CFG_EEPROM_Screen();
break;
case(EDIT_EEPROM_SCREEN):
Edit_EEPROM_Screen();
break;
case(CREATE_BACKUP_SCREEN):
Create_Backup_Files_Screen();
break;
case(LOCK_HDD_SCREEN):
Lock_HDD_Screen();
break;
case(UNLOCK_HDD_SCREEN):
Unlock_HDD_Screen();
break;
case(XBOX_CONFIG_SCREEN):
XBOXConfigScreen();
break;
case (PATCH_HD):
PatchHD();
break;
case(EXIT_SCREEN):
ExitScreen();
break;
}
}
void ConfigMagicApp::PatchHD()
{
m_pXKEEPROM->PatchHD();
WaitForInput = FALSE;
}
void ConfigMagicApp::LoadMainMenuItems()
{
m_pMainMenu->AddMenuItem("A_LOADX", "Load XBOX EEPROM");
m_pMainMenu->AddMenuItem("B_LOADB", "Load EEPROM from .BIN File");
m_pMainMenu->AddMenuItem("C_LOADC", "Build EEPROM from .CFG File");
m_pMainMenu->AddMenuItem("D_EDIT", "On-The-Fly Edit EEPROM");
m_pMainMenu->AddMenuItem("E_UNLOCKHDD", "Unlock HDD");
m_pMainMenu->AddMenuItem("F_LOCKHDD", "Lock HDD");
m_pMainMenu->AddMenuItem("G_BACKUP", "Create Backup Files");
m_pMainMenu->AddMenuItem("H_WRITEX", "Update XBOX EEPROM");
m_pMainMenu->AddMenuItem("I_PATCH", "Patch HD settings");
m_pMainMenu->AddMenuItem("J_EXIT", "EXIT ConfigMagic");
m_pMainMenu->SetSelectedMenuItem("J_EXIT");
}
void ConfigMagicApp::ProcessMenuSelect(LPCSTR MenuItemSelected)
{
//Process the Menu Select Action..
if ( _stricmp(MenuItemSelected, "A_LOADX") == 0)
{
XConfSections = LOAD_XBOX_EEPROM_SCREEN;
WaitForInput = FALSE;
}
if ( _stricmp(MenuItemSelected, "B_LOADB") == 0)
{
XConfSections = LOAD_BIN_EEPROM_SCREEN;
WaitForInput = FALSE;
}
if (_stricmp(MenuItemSelected, "C_LOADC") == 0)
{
XConfSections = LOAD_CFG_EEPROM_SCREEN;
WaitForInput = FALSE;
}
if (_stricmp(MenuItemSelected, "D_EDIT") == 0)
{
XConfSections = EDIT_EEPROM_SCREEN;
WaitForInput = FALSE;
}
if ( _stricmp(MenuItemSelected, "E_UNLOCKHDD") == 0)
{
XConfSections = UNLOCK_HDD_SCREEN;
WaitForInput = FALSE;
}
if (_stricmp(MenuItemSelected, "F_LOCKHDD") == 0)
{
XConfSections = LOCK_HDD_SCREEN;
WaitForInput = FALSE;
}
if ( _stricmp(MenuItemSelected, "G_BACKUP") == 0)
{
XConfSections = CREATE_BACKUP_SCREEN;
WaitForInput = FALSE;
}
if ( _stricmp(MenuItemSelected, "H_WRITEX") == 0)
{
XConfSections = WRITE_XBOX_EEPROM_SCREEN;
WaitForInput = FALSE;
}
if ( _stricmp(MenuItemSelected, "I_PATCH") == 0)
{
XConfSections = PATCH_HD;
WaitForInput = FALSE;
}
if (_stricmp(MenuItemSelected, "J_EXIT") == 0)
{
XConfSections = EXIT_SCREEN;
WaitForInput = FALSE;
}
}
and in XKEEPROM.cpp
CODE
void XKEEPROM::PatchHD(void)
{
m_EEPROMData.VideoFlags[2] = 0xF;
CalculateChecksum3();
}
The 2 headers XKEEPROM.h and ConfigMagicApp.cpp will need the function headers added for PatchHD.
Actually the actual line of code is only 1 line but the GUI code takes more lines.