mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-06-28 01:49:33 -06:00

Using Unix tools to operate on a tree containing filename with spaces in them is really annoying, so rename the handful of instances where there were spaces. Host.cpp has never been used. Games tend to lookup the following directories that we don't yet have anything to put in, so prepopulate them in Data/User/Wii: title/00010001 title/00010002 title/00010003 title/00010004 title/00010005 title/00010006 title/00010007 meta shared2/title Set eol-style native on a number of text files which didn't already have it. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5572 8ced0084-cf51-0410-be5f-012b33b47a6e
520 lines
25 KiB
C++
520 lines
25 KiB
C++
#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);
|
|
}
|