#include "MemcardManager.h" #include "MCMdebug.h" BEGIN_EVENT_TABLE(CMemcardManagerDebug, wxWindow) EVT_CLOSE(CMemcardManagerDebug::OnClose) END_EVENT_TABLE() CMemcardManagerDebug::CMemcardManagerDebug(wxFrame* parent, const wxPoint& pos, const wxSize& size) : wxFrame(parent, wxID_ANY, _T("Memcard Debug Window"), pos, size, MEMCARD_MANAGER_STYLE) { // Create the GUI controls Init_ChildControls(); // Setup Window SetBackgroundColour(m_Notebook_MCMD->GetBackgroundColour()); SetSize(size); SetPosition(pos); Layout(); Show(); } void CMemcardManagerDebug::updatePanels(GCMemcard **memCard,int card) { memoryCard = memCard; updateHDRtab(card); updateDIRtab(card); updateDIRBtab(card); updateBATtab(card); updateBATBtab(card); } void CMemcardManagerDebug::Init_ChildControls() { // Main Notebook m_Notebook_MCMD = new wxNotebook(this, ID_NOTEBOOK_MAIN, wxDefaultPosition, wxDefaultSize); m_Tab_HDR = new wxPanel(m_Notebook_MCMD, ID_TAB_HDR, wxDefaultPosition, wxDefaultSize); m_Tab_DIR = new wxPanel(m_Notebook_MCMD, ID_TAB_DIR, wxDefaultPosition, wxDefaultSize); m_Tab_DIR_b = new wxPanel(m_Notebook_MCMD, ID_TAB_DIR_B, wxDefaultPosition, wxDefaultSize); m_Tab_BAT = new wxPanel(m_Notebook_MCMD, ID_TAB_BAT, wxDefaultPosition, wxDefaultSize); m_Tab_BAT_b = new wxPanel(m_Notebook_MCMD, ID_TAB_BAT_B, wxDefaultPosition, wxDefaultSize); Init_HDR(); Init_DIR(); Init_DIR_b(); Init_BAT(); Init_BAT_b(); // Add Tabs to Notebook m_Notebook_MCMD->AddPage(m_Tab_HDR, _T("HDR")); m_Notebook_MCMD->AddPage(m_Tab_DIR, _T("DIR")); m_Notebook_MCMD->AddPage(m_Tab_DIR_b, _T("DIR_b")); m_Notebook_MCMD->AddPage(m_Tab_BAT, _T("Bat")); m_Notebook_MCMD->AddPage(m_Tab_BAT_b, _T("Bat_b")); wxBoxSizer* sMain = new wxBoxSizer(wxVERTICAL); sMain->Add(m_Notebook_MCMD, 1, wxEXPAND|wxALL, 5); SetSizer(sMain); Layout(); Fit(); } void CMemcardManagerDebug::OnClose(wxCloseEvent& WXUNUSED (event)) { Hide(); } void CMemcardManagerDebug::Init_HDR() { wxBoxSizer *sMain; wxStaticBoxSizer *sHDR[2]; sMain = new wxBoxSizer(wxHORIZONTAL); sHDR[0] = new wxStaticBoxSizer(wxVERTICAL, m_Tab_HDR, wxT("MEMCARD:A")); sHDR[1] = new wxStaticBoxSizer(wxVERTICAL, m_Tab_HDR, wxT("MEMCARD:B")); wxGridBagSizer * sOtPaths[2]; wxStaticText *st[2][11]; for(int i = SLOT_A; i <=SLOT_B;i++) { sOtPaths[i] = new wxGridBagSizer(0, 0); sOtPaths[i]->AddGrowableCol(1); st[i][0]= new wxStaticText(m_Tab_HDR, 0, wxT("Ser\t\t"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); st[i][1]= new wxStaticText(m_Tab_HDR, 0, wxT("fmtTime\t\t"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); st[i][2]= new wxStaticText(m_Tab_HDR, 0, wxT("SRAMBIAS\t\t"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); st[i][3]= new wxStaticText(m_Tab_HDR, 0, wxT("SRAMLANG\t\t"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); st[i][4]= new wxStaticText(m_Tab_HDR, 0, wxT("Unk2\t\t"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); st[i][5]= new wxStaticText(m_Tab_HDR, 0, wxT("deviceID\t\t"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); st[i][6]= new wxStaticText(m_Tab_HDR, 0, wxT("Size\t\t"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); st[i][7]= new wxStaticText(m_Tab_HDR, 0, wxT("Encoding\t\t"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); st[i][8]= new wxStaticText(m_Tab_HDR, 0, wxT("UpdateCounter\t\t"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); st[i][9]= new wxStaticText(m_Tab_HDR, 0, wxT("CheckSum1\t\t"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); st[i][10]= new wxStaticText(m_Tab_HDR, 0, wxT("CheckSum2\t\t"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); t_HDR_ser[i] = new wxStaticText(m_Tab_HDR, 0, wxT("XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); t_HDR_fmtTime[i] = new wxStaticText(m_Tab_HDR, 0, wxT("XXXXXXXX, XXXXXXXX"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); t_HDR_SRAMBIAS[i] = new wxStaticText(m_Tab_HDR, 0, wxT("XX, XX, XX, XX"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); t_HDR_SRAMLANG[i] = new wxStaticText(m_Tab_HDR, 0, wxT("XX, XX, XX, XX"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); t_HDR_Unk2[i] = new wxStaticText(m_Tab_HDR, 0, wxT("XX, XX, XX, XX"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); t_HDR_devID[i] = new wxStaticText(m_Tab_HDR, 0, wxT("XX, XX"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); t_HDR_Size[i] = new wxStaticText(m_Tab_HDR, 0, wxT("XX, XX"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); t_HDR_Encoding[i] = new wxStaticText(m_Tab_HDR, 0, wxT("XX, XX"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); t_HDR_UpdateCounter[i] = new wxStaticText(m_Tab_HDR, 0, wxT("XX, XX"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); t_HDR_CheckSum1[i] = new wxStaticText(m_Tab_HDR, 0, wxT("XX, XX"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); t_HDR_CheckSum2[i] = new wxStaticText(m_Tab_HDR, 0, wxT("XX, XX"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); sOtPaths[i]->Add(st[i][0], wxGBPosition(0, 0), wxGBSpan(1, 1), wxALIGN_CENTER_VERTICAL|wxALL, 5); sOtPaths[i]->Add(t_HDR_ser[i], wxGBPosition(0, 1), wxGBSpan(1, 1), wxEXPAND|wxALL, 5); sOtPaths[i]->Add(st[i][1], wxGBPosition(1, 0), wxGBSpan(1, 1), wxALIGN_CENTER_VERTICAL|wxALL, 5); sOtPaths[i]->Add(t_HDR_fmtTime[i], wxGBPosition(1, 1), wxGBSpan(1, 1), wxEXPAND|wxALL, 5); sOtPaths[i]->Add(st[i][2], wxGBPosition(2, 0), wxGBSpan(1, 1), wxALIGN_CENTER_VERTICAL|wxALL, 5); sOtPaths[i]->Add(t_HDR_SRAMBIAS[i], wxGBPosition(2, 1), wxGBSpan(1, 1), wxEXPAND|wxALL, 5); sOtPaths[i]->Add(st[i][3], wxGBPosition(3, 0), wxGBSpan(1, 1), wxALIGN_CENTER_VERTICAL|wxALL, 5); sOtPaths[i]->Add(t_HDR_SRAMLANG[i], wxGBPosition(3, 1), wxGBSpan(1, 1), wxEXPAND|wxALL, 5); sOtPaths[i]->Add(st[i][4], wxGBPosition(4, 0), wxGBSpan(1, 1), wxALIGN_CENTER_VERTICAL|wxALL, 5); sOtPaths[i]->Add(t_HDR_Unk2[i], wxGBPosition(4, 1), wxGBSpan(1, 1), wxEXPAND|wxALL, 5); sOtPaths[i]->Add(st[i][5], wxGBPosition(5, 0), wxGBSpan(1, 1), wxALIGN_CENTER_VERTICAL|wxALL, 5); sOtPaths[i]->Add(t_HDR_devID[i], wxGBPosition(5, 1), wxGBSpan(1, 1), wxEXPAND|wxALL, 5); sOtPaths[i]->Add(st[i][6], wxGBPosition(6, 0), wxGBSpan(1, 1), wxALIGN_CENTER_VERTICAL|wxALL, 5); sOtPaths[i]->Add(t_HDR_Size[i], wxGBPosition(6, 1), wxGBSpan(1, 1), wxEXPAND|wxALL, 5); sOtPaths[i]->Add(st[i][7], wxGBPosition(7, 0), wxGBSpan(1, 1), wxALIGN_CENTER_VERTICAL|wxALL, 5); sOtPaths[i]->Add(t_HDR_Encoding[i], wxGBPosition(7, 1), wxGBSpan(1, 1), wxEXPAND|wxALL, 5); sOtPaths[i]->Add(st[i][8], wxGBPosition(8, 0), wxGBSpan(1, 1), wxALIGN_CENTER_VERTICAL|wxALL, 5); sOtPaths[i]->Add(t_HDR_UpdateCounter[i], wxGBPosition(8, 1), wxGBSpan(1, 1), wxEXPAND|wxALL, 5); sOtPaths[i]->Add(st[i][9], wxGBPosition(9, 0), wxGBSpan(1, 1), wxALIGN_CENTER_VERTICAL|wxALL, 5); sOtPaths[i]->Add(t_HDR_CheckSum1[i], wxGBPosition(9, 1), wxGBSpan(1, 1), wxEXPAND|wxALL, 5); sOtPaths[i]->Add(st[i][10], wxGBPosition(10, 0), wxGBSpan(1, 1), wxALIGN_CENTER_VERTICAL|wxALL, 5); sOtPaths[i]->Add(t_HDR_CheckSum2[i], wxGBPosition(10, 1), wxGBSpan(1, 1), wxEXPAND|wxALL, 5); sHDR[i]->Add(sOtPaths[i], 0, wxEXPAND|wxALL, 5); sMain->Add(sHDR[i], 0, wxEXPAND|wxALL, 1); } m_Tab_HDR->SetSizer(sMain); m_Tab_HDR->Layout(); } void CMemcardManagerDebug::updateHDRtab(int card) { wxString wx_ser, wx_fmtTime, wx_SRAMBIAS, wx_SRAMLANG, wx_Unk2, wx_devID, wx_Size, wx_Encoding, wx_UpdateCounter, wx_CheckSum1, wx_CheckSum2; wx_ser.Printf(wxT("%02X, %02X, %02X, %02X, %02X, %02X, %02X, %02X, %02X, %02X, %02X, %02X"), memoryCard[card]->hdr.serial[0],memoryCard[card]->hdr.serial[1], memoryCard[card]->hdr.serial[2],memoryCard[card]->hdr.serial[3], memoryCard[card]->hdr.serial[4],memoryCard[card]->hdr.serial[5], memoryCard[card]->hdr.serial[6],memoryCard[card]->hdr.serial[7], memoryCard[card]->hdr.serial[8],memoryCard[card]->hdr.serial[9], memoryCard[card]->hdr.serial[10],memoryCard[card]->hdr.serial[11]); wx_fmtTime.Printf(wxT("%08X, %08X"), Common::swap32(memoryCard[card]->hdr.fmtTime.high),Common::swap32(memoryCard[card]->hdr.fmtTime.low)); wx_SRAMBIAS.Printf(wxT("%02X, %02X, %02X, %02X"), memoryCard[card]->hdr.SramBias[0],memoryCard[card]->hdr.SramBias[1], memoryCard[card]->hdr.SramBias[2],memoryCard[card]->hdr.SramBias[3]); wx_SRAMLANG.Printf(wxT("%02X, %02X, %02X, %02X"), memoryCard[card]->hdr.SramLang[0], memoryCard[card]->hdr.SramLang[1], memoryCard[card]->hdr.SramLang[2],memoryCard[card]->hdr.SramLang[3]); wx_Unk2.Printf(wxT("%02X, %02X, %02X, %02X"), memoryCard[card]->hdr.Unk2[0],memoryCard[card]->hdr.Unk2[1], memoryCard[card]->hdr.Unk2[2],memoryCard[card]->hdr.Unk2[3]); wx_devID.Printf(wxT("%02X, %02X"), memoryCard[card]->hdr.deviceID[0],memoryCard[card]->hdr.deviceID[1]); wx_Size.Printf(wxT("%02X, %02X"), memoryCard[card]->hdr.SizeMb[0],memoryCard[card]->hdr.SizeMb[1]); wx_Encoding.Printf( wxT("%02X, %02X"), memoryCard[card]->hdr.Encoding[0],memoryCard[card]->hdr.Encoding[1]); wx_UpdateCounter.Printf(wxT("%02X, %02X"), memoryCard[card]->hdr.UpdateCounter[0],memoryCard[card]->hdr.UpdateCounter[1]); wx_CheckSum1.Printf(wxT("%02X, %02X"), memoryCard[card]->hdr.CheckSum1[0],memoryCard[card]->hdr.CheckSum1[1]); wx_CheckSum2.Printf(wxT("%02X, %02X"), memoryCard[card]->hdr.CheckSum2[0],memoryCard[card]->hdr.CheckSum2[1]); t_HDR_ser[card]->SetLabel(wx_ser); t_HDR_fmtTime[card]->SetLabel(wx_fmtTime); t_HDR_SRAMBIAS[card]->SetLabel(wx_SRAMBIAS); t_HDR_SRAMLANG[card]->SetLabel(wx_SRAMLANG); t_HDR_Unk2[card]->SetLabel(wx_Unk2); t_HDR_devID[card]->SetLabel(wx_devID); t_HDR_Size[card]->SetLabel(wx_Size); t_HDR_Encoding[card]->SetLabel(wx_Encoding); t_HDR_UpdateCounter[card]->SetLabel(wx_UpdateCounter); t_HDR_CheckSum1[card]->SetLabel(wx_CheckSum1); t_HDR_CheckSum2[card]->SetLabel(wx_CheckSum2); } void CMemcardManagerDebug::Init_DIR() { wxBoxSizer *sMain; wxStaticBoxSizer *sDIR[2]; sMain = new wxBoxSizer(wxHORIZONTAL); sDIR[0] = new wxStaticBoxSizer(wxVERTICAL, m_Tab_DIR, wxT("MEMCARD:A")); sDIR[1] = new wxStaticBoxSizer(wxVERTICAL, m_Tab_DIR, wxT("MEMCARD:B")); wxGridBagSizer * sOtPaths[3]; wxStaticText *st[2][9]; for(int i = SLOT_A; i <=SLOT_B;i++) { sOtPaths[i] = new wxGridBagSizer(0, 0); sOtPaths[i]->AddGrowableCol(1); st[i][0]= new wxStaticText(m_Tab_DIR, 0, wxT("UpdateCounter\t\t"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); st[i][1]= new wxStaticText(m_Tab_DIR, 0, wxT("CheckSum1\t\t"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); st[i][2]= new wxStaticText(m_Tab_DIR, 0, wxT("CheckSum2\t\t"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); t_DIR_UpdateCounter[i] = new wxStaticText(m_Tab_DIR, 0, wxT("XX, XX"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); t_DIR_CheckSum1[i] = new wxStaticText(m_Tab_DIR, 0, wxT("XX, XX"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); t_DIR_CheckSum2[i] = new wxStaticText(m_Tab_DIR, 0, wxT("XX, XX"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); sOtPaths[i]->Add(st[i][0], wxGBPosition(0, 0), wxGBSpan(1, 1), wxALIGN_CENTER_VERTICAL|wxALL, 5); sOtPaths[i]->Add(t_DIR_UpdateCounter[i], wxGBPosition(0, 1), wxGBSpan(1, 1), wxEXPAND|wxALL, 5); sOtPaths[i]->Add(st[i][1], wxGBPosition(1, 0), wxGBSpan(1, 1), wxALIGN_CENTER_VERTICAL|wxALL, 5); sOtPaths[i]->Add(t_DIR_CheckSum1[i], wxGBPosition(1, 1), wxGBSpan(1, 1), wxEXPAND|wxALL, 5); sOtPaths[i]->Add(st[i][2], wxGBPosition(2, 0), wxGBSpan(1, 1), wxALIGN_CENTER_VERTICAL|wxALL, 5); sOtPaths[i]->Add(t_DIR_CheckSum2[i], wxGBPosition(2, 1), wxGBSpan(1, 1), wxEXPAND|wxALL, 5); sDIR[i]->Add(sOtPaths[i], 0, wxEXPAND|wxALL, 5); sMain->Add(sDIR[i], 0, wxEXPAND|wxALL, 1); } m_Tab_DIR->SetSizer(sMain); m_Tab_DIR->Layout(); } void CMemcardManagerDebug::updateDIRtab(int card) { wxString wx_UpdateCounter, wx_CheckSum1, wx_CheckSum2; wx_UpdateCounter.Printf(wxT("%02X, %02X"), memoryCard[card]->dir.UpdateCounter[0],memoryCard[card]->dir.UpdateCounter[1]); wx_CheckSum1.Printf(wxT("%02X, %02X"), memoryCard[card]->dir.CheckSum1[0],memoryCard[card]->dir.CheckSum1[1]); wx_CheckSum2.Printf(wxT("%02X, %02X"), memoryCard[card]->dir.CheckSum2[0],memoryCard[card]->dir.CheckSum2[1]); t_DIR_UpdateCounter[card]->SetLabel(wx_UpdateCounter); t_DIR_CheckSum1[card]->SetLabel(wx_CheckSum1); t_DIR_CheckSum2[card]->SetLabel(wx_CheckSum2); } void CMemcardManagerDebug::Init_DIR_b() { wxBoxSizer *sMain; wxStaticBoxSizer *sDIR_b[2]; sMain = new wxBoxSizer(wxHORIZONTAL); sDIR_b[0] = new wxStaticBoxSizer(wxVERTICAL, m_Tab_DIR_b, wxT("MEMCARD:A")); sDIR_b[1] = new wxStaticBoxSizer(wxVERTICAL, m_Tab_DIR_b, wxT("MEMCARD:B")); wxGridBagSizer * sOtPaths[3]; wxStaticText *st[2][9]; for(int i = SLOT_A; i <=SLOT_B;i++) { sOtPaths[i] = new wxGridBagSizer(0, 0); sOtPaths[i]->AddGrowableCol(1); st[i][0]= new wxStaticText(m_Tab_DIR_b, 0, wxT("UpdateCounter\t\t"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); st[i][1]= new wxStaticText(m_Tab_DIR_b, 0, wxT("CheckSum1\t\t"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); st[i][2]= new wxStaticText(m_Tab_DIR_b, 0, wxT("CheckSum2\t\t"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); t_DIR_b_UpdateCounter[i] = new wxStaticText(m_Tab_DIR_b, 0, wxT("XX, XX"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); t_DIR_b_CheckSum1[i] = new wxStaticText(m_Tab_DIR_b, 0, wxT("XX, XX"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); t_DIR_b_CheckSum2[i] = new wxStaticText(m_Tab_DIR_b, 0, wxT("XX, XX"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); sOtPaths[i]->Add(st[i][0], wxGBPosition(0, 0), wxGBSpan(1, 1), wxALIGN_CENTER_VERTICAL|wxALL, 5); sOtPaths[i]->Add(t_DIR_b_UpdateCounter[i], wxGBPosition(0, 1), wxGBSpan(1, 1), wxEXPAND|wxALL, 5); sOtPaths[i]->Add(st[i][1], wxGBPosition(1, 0), wxGBSpan(1, 1), wxALIGN_CENTER_VERTICAL|wxALL, 5); sOtPaths[i]->Add(t_DIR_b_CheckSum1[i], wxGBPosition(1, 1), wxGBSpan(1, 1), wxEXPAND|wxALL, 5); sOtPaths[i]->Add(st[i][2], wxGBPosition(2, 0), wxGBSpan(1, 1), wxALIGN_CENTER_VERTICAL|wxALL, 5); sOtPaths[i]->Add(t_DIR_b_CheckSum2[i], wxGBPosition(2, 1), wxGBSpan(1, 1), wxEXPAND|wxALL, 5); sDIR_b[i]->Add(sOtPaths[i], 0, wxEXPAND|wxALL, 5); sMain->Add(sDIR_b[i], 0, wxEXPAND|wxALL, 1); } m_Tab_DIR_b->SetSizer(sMain); m_Tab_DIR_b->Layout(); } void CMemcardManagerDebug::updateDIRBtab(int card) { wxString wx_UpdateCounter, wx_CheckSum1, wx_CheckSum2; wx_UpdateCounter.Printf(wxT("%02X, %02X"), memoryCard[card]->dir_backup.UpdateCounter[0],memoryCard[card]->dir_backup.UpdateCounter[1]); wx_CheckSum1.Printf(wxT("%02X, %02X"), memoryCard[card]->dir_backup.CheckSum1[0],memoryCard[card]->dir_backup.CheckSum1[1]); wx_CheckSum2.Printf(wxT("%02X, %02X"), memoryCard[card]->dir_backup.CheckSum2[0],memoryCard[card]->dir_backup.CheckSum2[1]); t_DIR_b_UpdateCounter[card]->SetLabel(wx_UpdateCounter); t_DIR_b_CheckSum1[card]->SetLabel(wx_CheckSum1); t_DIR_b_CheckSum2[card]->SetLabel(wx_CheckSum2); } void CMemcardManagerDebug::Init_BAT() { wxBoxSizer *sMain; wxStaticBoxSizer *sBAT[4]; sMain = new wxBoxSizer(wxHORIZONTAL); sBAT[0] = new wxStaticBoxSizer(wxVERTICAL, m_Tab_BAT, wxT("MEMCARD:A")); sBAT[1] = new wxStaticBoxSizer(wxVERTICAL, m_Tab_BAT, wxT("MEMCARD:B")); sBAT[2] = new wxStaticBoxSizer(wxVERTICAL, m_Tab_BAT, wxT("MEMCARD:A MAP")); sBAT[3] = new wxStaticBoxSizer(wxVERTICAL, m_Tab_BAT, wxT("MEMCARD:B MAP")); wxGridBagSizer * sOtPaths[4]; wxStaticText *st[2][9]; for(int i = SLOT_A; i <=SLOT_B;i++) { sOtPaths[i] = new wxGridBagSizer(0, 0); sOtPaths[i]->AddGrowableCol(1); st[i][0]= new wxStaticText(m_Tab_BAT, 0, wxT("CheckSum1\t\t"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); st[i][1]= new wxStaticText(m_Tab_BAT, 0, wxT("CheckSum2\t\t"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); st[i][2]= new wxStaticText(m_Tab_BAT, 0, wxT("UpdateCounter\t\t"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); st[i][3]= new wxStaticText(m_Tab_BAT, 0, wxT("FreeBlocks\t\t"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); st[i][4]= new wxStaticText(m_Tab_BAT, 0, wxT("LastAllocated\t\t"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); t_BAT_CheckSum1[i] = new wxStaticText(m_Tab_BAT, 0, wxT("XX, XX"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); t_BAT_CheckSum2[i] = new wxStaticText(m_Tab_BAT, 0, wxT("XX, XX"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); t_BAT_UpdateCounter[i] = new wxStaticText(m_Tab_BAT, 0, wxT("XX, XX"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); t_BAT_FreeBlocks[i] = new wxStaticText(m_Tab_BAT, 0, wxT("XX, XX"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); t_BAT_LastAllocated[i] = new wxStaticText(m_Tab_BAT, 0, wxT("XX, XX"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); sOtPaths[i]->Add(st[i][0], wxGBPosition(0, 0), wxGBSpan(1, 1), wxALIGN_CENTER_VERTICAL|wxALL, 5); sOtPaths[i]->Add(t_BAT_CheckSum1[i], wxGBPosition(0, 1), wxGBSpan(1, 1), wxEXPAND|wxALL, 5); sOtPaths[i]->Add(st[i][1], wxGBPosition(1, 0), wxGBSpan(1, 1), wxALIGN_CENTER_VERTICAL|wxALL, 5); sOtPaths[i]->Add(t_BAT_CheckSum2[i], wxGBPosition(1, 1), wxGBSpan(1, 1), wxEXPAND|wxALL, 5); sOtPaths[i]->Add(st[i][2], wxGBPosition(2, 0), wxGBSpan(1, 1), wxALIGN_CENTER_VERTICAL|wxALL, 5); sOtPaths[i]->Add(t_BAT_UpdateCounter[i], wxGBPosition(2, 1), wxGBSpan(1, 1), wxEXPAND|wxALL, 5); sOtPaths[i]->Add(st[i][3], wxGBPosition(3, 0), wxGBSpan(1, 1), wxALIGN_CENTER_VERTICAL|wxALL, 5); sOtPaths[i]->Add(t_BAT_FreeBlocks[i], wxGBPosition(3, 1), wxGBSpan(1, 1), wxEXPAND|wxALL, 5); sOtPaths[i]->Add(st[i][4], wxGBPosition(4, 0), wxGBSpan(1, 1), wxALIGN_CENTER_VERTICAL|wxALL, 5); sOtPaths[i]->Add(t_BAT_LastAllocated[i], wxGBPosition(4, 1), wxGBSpan(1, 1), wxEXPAND|wxALL, 5); sBAT[i]->Add(sOtPaths[i], 0, wxEXPAND|wxALL, 5); sMain->Add(sBAT[i], 0, wxEXPAND|wxALL, 1); } for (int k=2;k<=3;k++) //256 { sOtPaths[k] = new wxGridBagSizer(0, 0); sOtPaths[k]->AddGrowableCol(1); for(int j=0;j<256;j++) { t_BAT_map[j][k%2] = new wxStaticText(m_Tab_BAT, 0, wxT("XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); sOtPaths[k]->Add(t_BAT_map[j][k%2], wxGBPosition(j, 0), wxGBSpan(1, 1), wxALIGN_CENTER_VERTICAL|wxALL, 5); } sBAT[k]->Add(sOtPaths[k], 0, wxEXPAND|wxALL, 5); sMain->Add(sBAT[k], 0, wxEXPAND|wxALL, 1); } m_Tab_BAT->SetSizer(sMain); m_Tab_BAT->Layout(); } void CMemcardManagerDebug::updateBATtab(int card) { wxString wx_UpdateCounter, wx_CheckSum1, wx_CheckSum2, wx_FreeBlocks, wx_LastAllocated; wx_CheckSum1.Printf(wxT("%02X, %02X"), memoryCard[card]->bat.CheckSum1[0],memoryCard[card]->bat.CheckSum1[1]); wx_CheckSum2.Printf(wxT("%02X, %02X"), memoryCard[card]->bat.CheckSum2[0],memoryCard[card]->bat.CheckSum2[1]); wx_UpdateCounter.Printf(wxT("%02X, %02X"), memoryCard[card]->bat.UpdateCounter[0],memoryCard[card]->bat.UpdateCounter[1]); wx_FreeBlocks.Printf(wxT("%02X, %02X"), memoryCard[card]->bat.FreeBlocks[0],memoryCard[card]->bat.FreeBlocks[1]); wx_LastAllocated.Printf(wxT("%d"), memoryCard[card]->bat.LastAllocated[0] << 8 | memoryCard[card]->bat.LastAllocated[1]); t_BAT_CheckSum1[card]->SetLabel(wx_CheckSum1); t_BAT_CheckSum2[card]->SetLabel(wx_CheckSum2); t_BAT_UpdateCounter[card]->SetLabel(wx_UpdateCounter); t_BAT_FreeBlocks[card]->SetLabel(wx_FreeBlocks); t_BAT_LastAllocated[card]->SetLabel(wx_LastAllocated); wxString wx_map[256]; int pagesMax = 2048; pagesMax = (1) * 13*8; for(int j=0;j<2048 && j < pagesMax ;j+=8) { wx_map[j/8].Printf(wxT("%d, %d, %d, %d, %d, %d, %d, %d"), (memoryCard[card]->bat.Map[j] == 0xFFFF)? -1 : Common::swap16(memoryCard[card]->bat.Map[j]), (memoryCard[card]->bat.Map[j+1] == 0xFFFF)? -1 : Common::swap16(memoryCard[card]->bat.Map[j+1]), (memoryCard[card]->bat.Map[j+2] == 0xFFFF)? -1 : Common::swap16(memoryCard[card]->bat.Map[j+2]), (memoryCard[card]->bat.Map[j+3] == 0xFFFF)? -1 : Common::swap16(memoryCard[card]->bat.Map[j+3]), (memoryCard[card]->bat.Map[j+4] == 0xFFFF)? -1 : Common::swap16(memoryCard[card]->bat.Map[j+4]), (memoryCard[card]->bat.Map[j+5] == 0xFFFF)? -1 : Common::swap16(memoryCard[card]->bat.Map[j+5]), (memoryCard[card]->bat.Map[j+6] == 0xFFFF)? -1 : Common::swap16(memoryCard[card]->bat.Map[j+6]), (memoryCard[card]->bat.Map[j+7] == 0xFFFF)? -1 : Common::swap16(memoryCard[card]->bat.Map[j+7])); t_BAT_map[j/8][card]->SetLabel(wx_map[j/8]); } } void CMemcardManagerDebug::Init_BAT_b() { wxBoxSizer *sMain; wxStaticBoxSizer *sBAT_b[2]; sMain = new wxBoxSizer(wxHORIZONTAL); sBAT_b[0] = new wxStaticBoxSizer(wxVERTICAL, m_Tab_BAT_b, wxT("MEMCARD:A")); sBAT_b[1] = new wxStaticBoxSizer(wxVERTICAL, m_Tab_BAT_b, wxT("MEMCARD:B")); wxGridBagSizer * sOtPaths[3]; wxStaticText *st[2][9]; for(int i = SLOT_A; i <=SLOT_B;i++) { sOtPaths[i] = new wxGridBagSizer(0, 0); sOtPaths[i]->AddGrowableCol(1); st[i][0]= new wxStaticText(m_Tab_BAT_b, 0, wxT("CheckSum1\t\t"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); st[i][1]= new wxStaticText(m_Tab_BAT_b, 0, wxT("CheckSum2\t\t"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); st[i][2]= new wxStaticText(m_Tab_BAT_b, 0, wxT("UpdateCounter\t\t"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); st[i][3]= new wxStaticText(m_Tab_BAT_b, 0, wxT("FreeBlocks\t\t"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); st[i][4]= new wxStaticText(m_Tab_BAT_b, 0, wxT("LastAllocated\t\t"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); t_BAT_b_CheckSum1[i] = new wxStaticText(m_Tab_BAT_b, 0, wxT("XX, XX"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); t_BAT_b_CheckSum2[i] = new wxStaticText(m_Tab_BAT_b, 0, wxT("XX, XX"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); t_BAT_b_UpdateCounter[i] = new wxStaticText(m_Tab_BAT_b, 0, wxT("XX, XX"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); t_BAT_b_FreeBlocks[i] = new wxStaticText(m_Tab_BAT_b, 0, wxT("XX, XX"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); t_BAT_b_LastAllocated[i] = new wxStaticText(m_Tab_BAT_b, 0, wxT("XX, XX"), wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); sOtPaths[i]->Add(st[i][0], wxGBPosition(0, 0), wxGBSpan(1, 1), wxALIGN_CENTER_VERTICAL|wxALL, 5); sOtPaths[i]->Add(t_BAT_b_CheckSum1[i], wxGBPosition(0, 1), wxGBSpan(1, 1), wxEXPAND|wxALL, 5); sOtPaths[i]->Add(st[i][1], wxGBPosition(1, 0), wxGBSpan(1, 1), wxALIGN_CENTER_VERTICAL|wxALL, 5); sOtPaths[i]->Add(t_BAT_b_CheckSum2[i], wxGBPosition(1, 1), wxGBSpan(1, 1), wxEXPAND|wxALL, 5); sOtPaths[i]->Add(st[i][2], wxGBPosition(2, 0), wxGBSpan(1, 1), wxALIGN_CENTER_VERTICAL|wxALL, 5); sOtPaths[i]->Add(t_BAT_b_UpdateCounter[i], wxGBPosition(2, 1), wxGBSpan(1, 1), wxEXPAND|wxALL, 5); sOtPaths[i]->Add(st[i][3], wxGBPosition(3, 0), wxGBSpan(1, 1), wxALIGN_CENTER_VERTICAL|wxALL, 5); sOtPaths[i]->Add(t_BAT_b_FreeBlocks[i], wxGBPosition(3, 1), wxGBSpan(1, 1), wxEXPAND|wxALL, 5); sOtPaths[i]->Add(st[i][4], wxGBPosition(4, 0), wxGBSpan(1, 1), wxALIGN_CENTER_VERTICAL|wxALL, 5); sOtPaths[i]->Add(t_BAT_b_LastAllocated[i], wxGBPosition(4, 1), wxGBSpan(1, 1), wxEXPAND|wxALL, 5); sBAT_b[i]->Add(sOtPaths[i], 0, wxEXPAND|wxALL, 5); sMain->Add(sBAT_b[i], 0, wxEXPAND|wxALL, 1); } m_Tab_BAT_b->SetSizer(sMain); m_Tab_BAT_b->Layout(); } void CMemcardManagerDebug::updateBATBtab(int card) { wxString wx_UpdateCounter, wx_CheckSum1, wx_CheckSum2, wx_FreeBlocks, wx_LastAllocated; wx_CheckSum1.Printf(wxT("%02X, %02X"), memoryCard[card]->bat_backup.CheckSum1[0],memoryCard[card]->bat_backup.CheckSum1[1]); wx_CheckSum2.Printf(wxT("%02X, %02X"), memoryCard[card]->bat_backup.CheckSum2[0],memoryCard[card]->bat_backup.CheckSum2[1]); wx_UpdateCounter.Printf(wxT("%02X, %02X"), memoryCard[card]->bat_backup.UpdateCounter[0],memoryCard[card]->bat_backup.UpdateCounter[1]); wx_FreeBlocks.Printf(wxT("%02X, %02X"), memoryCard[card]->bat_backup.FreeBlocks[0],memoryCard[card]->bat_backup.FreeBlocks[1]); wx_LastAllocated.Printf(wxT("%02X, %02X"), memoryCard[card]->bat_backup.LastAllocated[0],memoryCard[card]->bat_backup.LastAllocated[1]); t_BAT_b_CheckSum1[card]->SetLabel(wx_CheckSum1); t_BAT_b_CheckSum2[card]->SetLabel(wx_CheckSum2); t_BAT_b_UpdateCounter[card]->SetLabel(wx_UpdateCounter); t_BAT_b_FreeBlocks[card]->SetLabel(wx_FreeBlocks); t_BAT_b_LastAllocated[card]->SetLabel(wx_LastAllocated); }