diff --git a/desmume/src/wx/wxDeSmuME_2008.vcproj b/desmume/src/wx/wxDeSmuME_2008.vcproj
index 99e03fa81..1955cabdf 100644
--- a/desmume/src/wx/wxDeSmuME_2008.vcproj
+++ b/desmume/src/wx/wxDeSmuME_2008.vcproj
@@ -79,7 +79,7 @@
/>
#endif
-#ifdef GDB_STUB
-#include "gdbstub.h"
-#endif
-#include
-#include
+#ifdef GDB_STUB
+#include "gdbstub.h"
+#endif
+#include
+#include
+
+#define SCREEN_SIZE (256*192*3)
+#define GAP_DEFAULT 64
+#define GAP_MAX 90
+static int nds_gap_size;
+static int nds_screen_rotation_angle;
+static bool Touch = false;
-#define SCREEN_SIZE (256*192*3)
-#define GAP_DEFAULT 64
-#define GAP_MAX 90
-static int nds_gap_size;
-static int nds_screen_rotation_angle;
-
SoundInterface_struct *SNDCoreList[] = {
&SNDDummy,
#ifdef WIN32
@@ -91,17 +74,17 @@ class DesmumeFrame: public wxFrame
{
public:
DesmumeFrame(const wxString& title);
- ~DesmumeFrame() {
- delete history;
- }
-
- void OnQuit(wxCommandEvent& WXUNUSED(event))
- {
- execute = false;
- NDS_DeInit();
- Close(true);
+ ~DesmumeFrame() {
+ delete history;
}
-
+
+ void OnQuit(wxCommandEvent& WXUNUSED(event))
+ {
+ execute = false;
+ NDS_DeInit();
+ Close(true);
+ }
+
void OnAbout(wxCommandEvent& WXUNUSED(event))
{
wxMessageBox(
@@ -180,89 +163,151 @@ public:
void LoadRom(wxCommandEvent& event){
wxFileDialog dialog(this,_T("Load Rom"),wxGetHomeDir(),_T(""),_T("*.nds"),wxFD_OPEN, wxDefaultPosition, wxDefaultSize);
if(dialog.ShowModal() == wxID_OK) {
- history->AddFileToHistory(dialog.GetPath());
+ history->AddFileToHistory(dialog.GetPath());
execute = true;
NDS_LoadROM(dialog.GetPath().mb_str(), dialog.GetPath().mb_str());
}
}
- void gpu_screen_to_rgb(u8 *rgb1, u8 *rgb2)
- {
- u16 gpu_pixel;
- u8 pixel[3];
- u8 *rgb = rgb1;
- const int rot = nds_screen_rotation_angle;
- int done = false;
- int offset = 0;
-
-loop:
- for (int i = 0; i < 256; i++) {
- for (int j = 0; j < 192; j++) {
- gpu_pixel = *((u16 *) & GPU_screen[(i + (j + offset) * 256) << 1]);
- pixel[0] = ((gpu_pixel >> 0) & 0x1f) << 3;
- pixel[1] = ((gpu_pixel >> 5) & 0x1f) << 3;
- pixel[2] = ((gpu_pixel >> 10) & 0x1f) << 3;
- switch (rot) {
- case 0:
- memcpy(rgb+((i+j*256)*3),pixel,3);
- break;
- case 90:
- memcpy(rgb+SCREEN_SIZE-((j+(255-i)*192)*3)-3,pixel,3);
- break;
- case 180:
- memcpy(rgb+SCREEN_SIZE-((i+j*256)*3)-3,pixel,3);
- break;
- case 270:
- memcpy(rgb+((j+(255-i)*192)*3),pixel,3);
- break;
- }
- }
-
- }
-
- if (done == false) {
- offset = 192;
- rgb = rgb2;
- done = true;
- goto loop;
- }
- }
-
- //TODO should integrate filter system
- void onPaint(wxPaintEvent &event)
- {
- u8 rgb1[SCREEN_SIZE], rgb2[SCREEN_SIZE];
- wxPaintDC dc(this);
- int w, h;
-
- if (nds_screen_rotation_angle == 90 || nds_screen_rotation_angle == 270) {
- w = 192;
- h = 256;
- } else {
- w = 256;
- h = 192;
- }
-
- gpu_screen_to_rgb(rgb1, rgb2);
- wxBitmap m_bitmap1(wxImage(w, h, rgb1, true));
- wxBitmap m_bitmap2(wxImage(w, h, rgb2, true));
- switch (nds_screen_rotation_angle) {
- case 0:
- dc.DrawBitmap(m_bitmap1, 0, 0, true);
- dc.DrawBitmap(m_bitmap2, 0, 192+nds_gap_size, true);
- break;
- case 90:
- dc.DrawBitmap(m_bitmap2, 0, 0, true);
- dc.DrawBitmap(m_bitmap1, 192+nds_gap_size, 0, true);
- break;
- case 180:
- dc.DrawBitmap(m_bitmap2, 0, 0, true);
- dc.DrawBitmap(m_bitmap1, 0, 192+nds_gap_size, true);
- break;
- case 270:
- dc.DrawBitmap(m_bitmap1, 0, 0, true);
- dc.DrawBitmap(m_bitmap2, 192+nds_gap_size, 0, true);
- break;
- }
+
+ //----------------------------------------------------------------------------
+ // Touchscreen
+ //----------------------------------------------------------------------------
+
+ // De-transform coordinates.
+ // Returns true if the coordinates are within the touchscreen.
+ bool DetransformTouchCoords(int& X, int& Y)
+ {
+ int dtX, dtY;
+
+ // TODO: descaling (when scaling is supported)
+
+ // De-rotate coordinates
+ switch (nds_screen_rotation_angle)
+ {
+ case 0: dtX = X; dtY = Y - 191 - nds_gap_size; break;
+ case 90: dtX = Y; dtY = 191 - X; break;
+ case 180: dtX = 255 - X; dtY = 191 - Y; break;
+ case 270: dtX = 255 - Y; dtY = X - 191 - nds_gap_size; break;
+ }
+
+ // Atleast one of the coordinates is out of range
+ if ((dtX < 0) || (dtX > 255) || (dtY < 0) || (dtY > 191))
+ {
+ X = wxClip(dtX, 0, 255);
+ Y = wxClip(dtY, 0, 191);
+ return false;
+ }
+ else
+ {
+ X = dtX;
+ Y = dtY;
+ return true;
+ }
+ }
+
+ void OnTouchEvent(wxMouseEvent& evt)
+ {
+ wxPoint pt = evt.GetPosition();
+ bool inside = DetransformTouchCoords(pt.x, pt.y);
+
+ if (evt.LeftDown() && inside)
+ {
+ Touch = true;
+ NDS_setTouchPos((u16)pt.x, (u16)pt.y);
+ }
+ else if(evt.LeftUp() && Touch)
+ {
+ Touch = false;
+ NDS_releaseTouch();
+ }
+ else if (Touch)
+ {
+ NDS_setTouchPos((u16)pt.x, (u16)pt.y);
+ }
+ }
+
+ //----------------------------------------------------------------------------
+ // Video
+ //----------------------------------------------------------------------------
+
+ void gpu_screen_to_rgb(u8 *rgb1, u8 *rgb2)
+ {
+ u16 gpu_pixel;
+ u8 pixel[3];
+ u8 *rgb = rgb1;
+ const int rot = nds_screen_rotation_angle;
+ int done = false;
+ int offset = 0;
+
+loop:
+ for (int i = 0; i < 256; i++) {
+ for (int j = 0; j < 192; j++) {
+ gpu_pixel = *((u16 *) & GPU_screen[(i + (j + offset) * 256) << 1]);
+ pixel[0] = ((gpu_pixel >> 0) & 0x1f) << 3;
+ pixel[1] = ((gpu_pixel >> 5) & 0x1f) << 3;
+ pixel[2] = ((gpu_pixel >> 10) & 0x1f) << 3;
+ switch (rot) {
+ case 0:
+ memcpy(rgb+((i+j*256)*3),pixel,3);
+ break;
+ case 90:
+ memcpy(rgb+SCREEN_SIZE-((j+(255-i)*192)*3)-3,pixel,3);
+ break;
+ case 180:
+ memcpy(rgb+SCREEN_SIZE-((i+j*256)*3)-3,pixel,3);
+ break;
+ case 270:
+ memcpy(rgb+((j+(255-i)*192)*3),pixel,3);
+ break;
+ }
+ }
+
+ }
+
+ if (done == false) {
+ offset = 192;
+ rgb = rgb2;
+ done = true;
+ goto loop;
+ }
+ }
+
+ //TODO should integrate filter system
+ void onPaint(wxPaintEvent &event)
+ {
+ u8 rgb1[SCREEN_SIZE], rgb2[SCREEN_SIZE];
+ wxPaintDC dc(this);
+ int w, h;
+
+ if (nds_screen_rotation_angle == 90 || nds_screen_rotation_angle == 270) {
+ w = 192;
+ h = 256;
+ } else {
+ w = 256;
+ h = 192;
+ }
+
+ gpu_screen_to_rgb(rgb1, rgb2);
+ wxBitmap m_bitmap1(wxImage(w, h, rgb1, true));
+ wxBitmap m_bitmap2(wxImage(w, h, rgb2, true));
+ switch (nds_screen_rotation_angle) {
+ case 0:
+ dc.DrawBitmap(m_bitmap1, 0, 0, true);
+ dc.DrawBitmap(m_bitmap2, 0, 192+nds_gap_size, true);
+ break;
+ case 90:
+ dc.DrawBitmap(m_bitmap2, 0, 0, true);
+ dc.DrawBitmap(m_bitmap1, 192+nds_gap_size, 0, true);
+ break;
+ case 180:
+ dc.DrawBitmap(m_bitmap2, 0, 0, true);
+ dc.DrawBitmap(m_bitmap1, 0, 192+nds_gap_size, true);
+ break;
+ case 270:
+ dc.DrawBitmap(m_bitmap1, 0, 0, true);
+ dc.DrawBitmap(m_bitmap2, 192+nds_gap_size, 0, true);
+ break;
+ }
}
void onIdle(wxIdleEvent &event){
@@ -271,8 +316,8 @@ loop:
applyInput();
if(execute) {
NDS_exec();
- SPU_Emulate_user();
- };
+ SPU_Emulate_user();
+ };
osd->update();
DrawHUD();
osd->clear();
@@ -363,10 +408,10 @@ loop:
void closeRom(wxCommandEvent& event) {
NDS_FreeROM();
execute = false;
- SPU_Pause(1);
-#ifdef HAVE_LIBAGG
+ SPU_Pause(1);
+#ifdef HAVE_LIBAGG
Hud.resetTransient();
-#endif
+#endif
NDS_Reset();
}
@@ -399,9 +444,9 @@ loop:
void OnOpenLuaWindow(wxCommandEvent& WXUNUSED (event))
{
-#ifdef WIN32
+#ifdef WIN32
new wxLuaWindow(this, wxDefaultPosition, wxSize(600, 390));
-#endif
+#endif
}
void OnOpenControllerConfiguration(wxCommandEvent& WXUNUSED (event))
@@ -424,24 +469,24 @@ loop:
void Menu_SaveStates(wxCommandEvent &event);
void Menu_LoadStates(wxCommandEvent &event);
void NDSInitialize();
- void OnRotation(wxCommandEvent &event);
- void ChangeRotation(int rot, bool skip);
- void onResize(wxSizeEvent &event);
- bool LoadSettings();
- bool SaveSettings();
- void OnClose(wxCloseEvent &event);
- void OnOpenRecent(wxCommandEvent &event);
+ void OnRotation(wxCommandEvent &event);
+ void ChangeRotation(int rot, bool skip);
+ void onResize(wxSizeEvent &event);
+ bool LoadSettings();
+ bool SaveSettings();
+ void OnClose(wxCloseEvent &event);
+ void OnOpenRecent(wxCommandEvent &event);
private:
- struct NDS_fw_config_data fw_config;
- wxFileHistory* history;
-#ifdef GDB_STUB
- gdbstub_handle_t arm9_gdb_stub;
- gdbstub_handle_t arm7_gdb_stub;
+ struct NDS_fw_config_data fw_config;
+ wxFileHistory* history;
+#ifdef GDB_STUB
+ gdbstub_handle_t arm9_gdb_stub;
+ gdbstub_handle_t arm7_gdb_stub;
struct armcpu_memory_iface *arm9_memio;
struct armcpu_memory_iface *arm7_memio;
- struct armcpu_ctrl_iface *arm9_ctrl_iface;
- struct armcpu_ctrl_iface *arm7_ctrl_iface;
+ struct armcpu_ctrl_iface *arm9_ctrl_iface;
+ struct armcpu_ctrl_iface *arm7_ctrl_iface;
#endif
DECLARE_EVENT_TABLE()
};
@@ -486,7 +531,7 @@ enum
wRot90,
wRot180,
wRot270,
- /* stupid enums: these two should be the at the end */
+ /* stupid enums: these two should be the at the end */
wLoadState01,
wSaveState01 = wLoadState01+20
};
@@ -494,52 +539,58 @@ enum
void DesmumeFrame::Menu_SaveStates(wxCommandEvent &event){savestate_slot(event.GetId() - wSaveState01);}
void DesmumeFrame::Menu_LoadStates(wxCommandEvent &event){loadstate_slot(event.GetId() - wLoadState01);}
-void DesmumeFrame::OnRotation(wxCommandEvent &event) {
- ChangeRotation((event.GetId() - wRot0)*90, true);
-}
-
-void DesmumeFrame::ChangeRotation(int rot, bool skip) {
- wxSize sizeMin, sizeMax;
-
- if (skip && rot == nds_screen_rotation_angle)
- return;
-
- SetMinSize(wxSize(-1,-1));
- SetMaxSize(wxSize(-1,-1));
-
- if (rot == 90 || rot == 270) {
- SetClientSize(384 + nds_gap_size, 256);
- sizeMax = sizeMin = ClientToWindowSize(wxSize(384,256));
- sizeMax.IncBy(GAP_MAX,0);
- } else {
- SetClientSize(256, 384 + nds_gap_size);
- sizeMax = sizeMin = ClientToWindowSize(wxSize(256,384));
- sizeMax.IncBy(0,GAP_MAX);
- }
- SetMinSize(sizeMin);
- SetMaxSize(sizeMax);
- nds_screen_rotation_angle = rot;
-}
-
-void DesmumeFrame::onResize(wxSizeEvent &event) {
- int w, h;
-
- GetClientSize(&w,&h);
- if (nds_screen_rotation_angle == 90 || nds_screen_rotation_angle == 270) {
- if (w>=384)
- nds_gap_size = w-384;
- } else {
- if (h>=384)
- nds_gap_size = h-384;
- }
- event.Skip();
-}
-
+void DesmumeFrame::OnRotation(wxCommandEvent &event) {
+ ChangeRotation((event.GetId() - wRot0)*90, true);
+}
+
+void DesmumeFrame::ChangeRotation(int rot, bool skip) {
+ wxSize sizeMin, sizeMax;
+
+ if (skip && rot == nds_screen_rotation_angle)
+ return;
+
+ SetMinSize(wxSize(-1,-1));
+ SetMaxSize(wxSize(-1,-1));
+
+ if (rot == 90 || rot == 270) {
+ SetClientSize(384 + nds_gap_size, 256);
+ sizeMax = sizeMin = ClientToWindowSize(wxSize(384,256));
+ sizeMax.IncBy(GAP_MAX,0);
+ } else {
+ SetClientSize(256, 384 + nds_gap_size);
+ sizeMax = sizeMin = ClientToWindowSize(wxSize(256,384));
+ sizeMax.IncBy(0,GAP_MAX);
+ }
+ SetMinSize(sizeMin);
+ SetMaxSize(sizeMax);
+ nds_screen_rotation_angle = rot;
+}
+
+void DesmumeFrame::onResize(wxSizeEvent &event) {
+ int w, h;
+
+ GetClientSize(&w,&h);
+ if (nds_screen_rotation_angle == 90 || nds_screen_rotation_angle == 270) {
+ if (w>=384)
+ nds_gap_size = w-384;
+ } else {
+ if (h>=384)
+ nds_gap_size = h-384;
+ }
+ event.Skip();
+}
+
BEGIN_EVENT_TABLE(DesmumeFrame, wxFrame)
+
EVT_PAINT(DesmumeFrame::onPaint)
EVT_IDLE(DesmumeFrame::onIdle)
EVT_SIZE(DesmumeFrame::onResize)
-EVT_CLOSE(DesmumeFrame::OnClose)
+EVT_LEFT_DOWN(DesmumeFrame::OnTouchEvent)
+EVT_LEFT_UP(DesmumeFrame::OnTouchEvent)
+EVT_LEFT_DCLICK(DesmumeFrame::OnTouchEvent)
+EVT_MOTION(DesmumeFrame::OnTouchEvent)
+EVT_CLOSE(DesmumeFrame::OnClose)
+
EVT_MENU(wxID_EXIT, DesmumeFrame::OnQuit)
EVT_MENU(wxID_OPEN, DesmumeFrame::LoadRom)
EVT_MENU(wxID_ABOUT,DesmumeFrame::OnAbout)
@@ -569,16 +620,16 @@ EVT_MENU(wSubmitABugReport,DesmumeFrame::submitABugReport)
EVT_MENU(wSaveStateAs,DesmumeFrame::saveStateAs)
EVT_MENU(wLoadStateFrom,DesmumeFrame::loadStateFrom)
-
-EVT_MENU_RANGE(wSaveState01,wSaveState01+9,DesmumeFrame::Menu_SaveStates)
-EVT_MENU_RANGE(wLoadState01,wLoadState01+9,DesmumeFrame::Menu_LoadStates)
+
+EVT_MENU_RANGE(wSaveState01,wSaveState01+9,DesmumeFrame::Menu_SaveStates)
+EVT_MENU_RANGE(wLoadState01,wLoadState01+9,DesmumeFrame::Menu_LoadStates)
EVT_MENU(wCloseRom,DesmumeFrame::closeRom)
EVT_MENU(wImportBackupMemory,DesmumeFrame::importBackupMemory)
EVT_MENU(wExportBackupMemory,DesmumeFrame::exportBackupMemory)
-EVT_MENU_RANGE(wRot0,wRot270,DesmumeFrame::OnRotation)
-
+EVT_MENU_RANGE(wRot0,wRot270,DesmumeFrame::OnRotation)
+
EVT_MENU(wSaveScreenshotAs,DesmumeFrame::saveScreenshotAs)
EVT_MENU(wQuickScreenshot,DesmumeFrame::quickScreenshot)
@@ -591,8 +642,8 @@ EVT_MENU(w3dView,DesmumeFrame::_3dView)
EVT_MENU(wLuaWindow,DesmumeFrame::OnOpenLuaWindow)
EVT_MENU(wConfigureControls,DesmumeFrame::OnOpenControllerConfiguration)
-
-EVT_MENU_RANGE(wxID_FILE1,wxID_FILE9,DesmumeFrame::OnOpenRecent)
+
+EVT_MENU_RANGE(wxID_FILE1,wxID_FILE9,DesmumeFrame::OnOpenRecent)
END_EVENT_TABLE()
@@ -601,28 +652,28 @@ IMPLEMENT_APP(Desmume)
static SPADInitialize PADInitialize;
void DesmumeFrame::NDSInitialize() {
- NDS_FillDefaultFirmwareConfigData( &fw_config);
+ NDS_FillDefaultFirmwareConfigData( &fw_config);
-#ifdef HAVE_LIBAGG
+#ifdef HAVE_LIBAGG
Desmume_InitOnce();
aggDraw.hud->attach((u8*)GPU_screen, 256, 384, 1024);//TODO
-#endif
-
+#endif
+
//TODO
addon_type = NDS_ADDON_NONE;
addonsChangePak(addon_type);
-
-#ifdef GDB_STUB
- arm9_memio = &arm9_base_memory_iface;
- arm7_memio = &arm7_base_memory_iface;
+
+#ifdef GDB_STUB
+ arm9_memio = &arm9_base_memory_iface;
+ arm7_memio = &arm7_base_memory_iface;
NDS_Init( arm9_memio, &arm9_ctrl_iface,
- arm7_memio, &arm7_ctrl_iface);
-#else
- NDS_Init();
+ arm7_memio, &arm7_ctrl_iface);
+#else
+ NDS_Init();
#endif
#ifndef WIN32
- SPU_ChangeSoundCore(SNDCORE_SDL, 735 * 4);
-#endif
+ SPU_ChangeSoundCore(SNDCORE_SDL, 735 * 4);
+#endif
NDS_3D_ChangeCore(0);
NDS_CreateDummyFirmware( &fw_config);
}
@@ -639,9 +690,9 @@ bool Desmume::OnInit()
OpenConsole();
#endif
- SetAppName(_T("desmume"));
- wxConfigBase *pConfig = new wxFileConfig();
- wxConfigBase::Set(pConfig);
+ SetAppName(_T("desmume"));
+ wxConfigBase *pConfig = new wxFileConfig();
+ wxConfigBase::Set(pConfig);
wxString emu_version(EMU_DESMUME_NAME_AND_VERSION(), wxConvUTF8);
DesmumeFrame *frame = new DesmumeFrame(emu_version);
frame->NDSInitialize();
@@ -652,7 +703,7 @@ bool Desmume::OnInit()
#ifndef WIN32
extern void Initialize(void *init);
-
+
Initialize(&PADInitialize);
#endif
@@ -663,20 +714,20 @@ DesmumeFrame::DesmumeFrame(const wxString& title)
: wxFrame(NULL, wxID_ANY, title)
{
- history = new wxFileHistory;
+ history = new wxFileHistory;
wxMenu *fileMenu = new wxMenu;
wxMenu *emulationMenu = new wxMenu;
wxMenu *viewMenu = new wxMenu;
wxMenu *configMenu = new wxMenu;
wxMenu *toolsMenu = new wxMenu;
wxMenu *helpMenu = new wxMenu;
- wxMenu *saves(MakeStatesSubMenu(wSaveState01));
- wxMenu *loads(MakeStatesSubMenu(wLoadState01));
- wxMenu *recentMenu = new wxMenu;
- history->UseMenu(recentMenu);
+ wxMenu *saves(MakeStatesSubMenu(wSaveState01));
+ wxMenu *loads(MakeStatesSubMenu(wLoadState01));
+ wxMenu *recentMenu = new wxMenu;
+ history->UseMenu(recentMenu);
fileMenu->Append(wxID_OPEN, _T("Load R&om\tAlt-R"));
- fileMenu->AppendSubMenu(recentMenu, _T("Recent files"));
+ fileMenu->AppendSubMenu(recentMenu, _T("Recent files"));
fileMenu->Append(wCloseRom, _T("Close Rom"));
fileMenu->AppendSeparator();
fileMenu->Append(wSaveStateAs, _T("Save State As..."));
@@ -701,14 +752,14 @@ DesmumeFrame::DesmumeFrame(const wxString& title)
emulationMenu->Append(wPause, _T("&Pause\tAlt-P"), _T("Pause Emulation"));
emulationMenu->Append(wReset, _T("&Reset\tAlt-R"), _T("Reset Emulation"));
- wxMenu *rotateMenu = new wxMenu;
- {
- rotateMenu->AppendRadioItem(wRot0, _T("0"));
- rotateMenu->AppendRadioItem(wRot90, _T("90"));
- rotateMenu->AppendRadioItem(wRot180, _T("180"));
- rotateMenu->AppendRadioItem(wRot270, _T("270"));
- }
- viewMenu->AppendSubMenu(rotateMenu, _T("Rotate"));
+ wxMenu *rotateMenu = new wxMenu;
+ {
+ rotateMenu->AppendRadioItem(wRot0, _T("0"));
+ rotateMenu->AppendRadioItem(wRot90, _T("90"));
+ rotateMenu->AppendRadioItem(wRot180, _T("180"));
+ rotateMenu->AppendRadioItem(wRot270, _T("270"));
+ }
+ viewMenu->AppendSubMenu(rotateMenu, _T("Rotate"));
viewMenu->AppendSeparator();
viewMenu->AppendCheckItem(wFrameCounter, _T("&Display Frame Counter"));
viewMenu->AppendCheckItem(wFPS, _T("&Display FPS"));
@@ -721,26 +772,26 @@ DesmumeFrame::DesmumeFrame(const wxString& title)
wxMenu *layersMenu = new wxMenu;
{
layersMenu->AppendCheckItem(wMainGPU, _T("Main GPU"));
- layersMenu->Check(wMainGPU, true);
+ layersMenu->Check(wMainGPU, true);
layersMenu->AppendCheckItem(wMainBG0, _T("Main BG 0"));
- layersMenu->Check(wMainBG0, true);
+ layersMenu->Check(wMainBG0, true);
layersMenu->AppendCheckItem(wMainBG1, _T("Main BG 1"));
- layersMenu->Check(wMainBG1, true);
+ layersMenu->Check(wMainBG1, true);
layersMenu->AppendCheckItem(wMainBG2, _T("Main BG 2"));
- layersMenu->Check(wMainBG2, true);
+ layersMenu->Check(wMainBG2, true);
layersMenu->AppendCheckItem(wMainBG3, _T("Main BG 3"));
- layersMenu->Check(wMainBG3, true);
+ layersMenu->Check(wMainBG3, true);
layersMenu->AppendSeparator();
layersMenu->AppendCheckItem(wSubGPU, _T("Sub GPU"));
- layersMenu->Check(wSubGPU, true);
+ layersMenu->Check(wSubGPU, true);
layersMenu->AppendCheckItem(wSubBG0, _T("Sub BG 0"));
- layersMenu->Check(wSubBG0, true);
+ layersMenu->Check(wSubBG0, true);
layersMenu->AppendCheckItem(wSubBG1, _T("Sub BG 1"));
- layersMenu->Check(wSubBG1, true);
+ layersMenu->Check(wSubBG1, true);
layersMenu->AppendCheckItem(wSubBG2, _T("Sub BG 2"));
- layersMenu->Check(wSubBG2, true);
+ layersMenu->Check(wSubBG2, true);
layersMenu->AppendCheckItem(wSubBG3, _T("Sub BG 3"));
- layersMenu->Check(wSubBG3, true);
+ layersMenu->Check(wSubBG3, true);
}
configMenu->Append(wConfigureControls, _T("Controls"));
@@ -764,9 +815,9 @@ DesmumeFrame::DesmumeFrame(const wxString& title)
// CreateStatusBar(2);
// SetStatusText("Welcome to Desmume!");
- LoadSettings();
- rotateMenu->Check(wRot0+(nds_screen_rotation_angle/90), true);
- ChangeRotation(nds_screen_rotation_angle, false);
+ LoadSettings();
+ rotateMenu->Check(wRot0+(nds_screen_rotation_angle/90), true);
+ ChangeRotation(nds_screen_rotation_angle, false);
}
#ifdef WIN32
@@ -786,29 +837,29 @@ createThread_gdb( void (APIENTRY *thread_function)( void *data),
void
joinThread_gdb( void *thread_handle) {
}
-#endif
-bool DesmumeFrame::LoadSettings() {
- wxConfigBase::Get()->Read(_T("/Screen/Gap"),&nds_gap_size,0);
- wxConfigBase::Get()->Read(_T("/Screen/Rotation"),&nds_screen_rotation_angle,0);
- wxConfigBase::Get()->SetPath(_T("/History"));
- history->Load(*wxConfigBase::Get());
- return true;
-}
-
-bool DesmumeFrame::SaveSettings() {
- wxConfigBase::Get()->Write(_T("/Screen/Gap"),nds_gap_size);
- wxConfigBase::Get()->Write(_T("/Screen/Rotation"),nds_screen_rotation_angle);
- wxConfigBase::Get()->SetPath(_T("/History"));
- history->Save(*wxConfigBase::Get());
- return true;
-}
-
-void DesmumeFrame::OnClose(wxCloseEvent &event) {
- SaveSettings();
- event.Skip();
-}
-
-void DesmumeFrame::OnOpenRecent(wxCommandEvent &event) {
+#endif
+bool DesmumeFrame::LoadSettings() {
+ wxConfigBase::Get()->Read(_T("/Screen/Gap"),&nds_gap_size,0);
+ wxConfigBase::Get()->Read(_T("/Screen/Rotation"),&nds_screen_rotation_angle,0);
+ wxConfigBase::Get()->SetPath(_T("/History"));
+ history->Load(*wxConfigBase::Get());
+ return true;
+}
+
+bool DesmumeFrame::SaveSettings() {
+ wxConfigBase::Get()->Write(_T("/Screen/Gap"),nds_gap_size);
+ wxConfigBase::Get()->Write(_T("/Screen/Rotation"),nds_screen_rotation_angle);
+ wxConfigBase::Get()->SetPath(_T("/History"));
+ history->Save(*wxConfigBase::Get());
+ return true;
+}
+
+void DesmumeFrame::OnClose(wxCloseEvent &event) {
+ SaveSettings();
+ event.Skip();
+}
+
+void DesmumeFrame::OnOpenRecent(wxCommandEvent &event) {
execute = true;
- NDS_LoadROM(history->GetHistoryFile(event.GetId()-wxID_FILE1).mb_str(),NULL);
-}
+ NDS_LoadROM(history->GetHistoryFile(event.GetId()-wxID_FILE1).mb_str(),NULL);
+}