diff --git a/melon.rc b/melon.rc new file mode 100644 index 00000000..790a6dc0 --- /dev/null +++ b/melon.rc @@ -0,0 +1,34 @@ +#define VOS_NT_WINDOWS32 0x00040004L +#define VFT_APP 0x00000001L + +//this will set your .exe icon +//A ICON MOVEABLE PURE LOADONCALL DISCARDABLE "melon.ico" + +//include version information in .exe, modify these values to match your needs +1 VERSIONINFO +FILEVERSION 0,1,1,1 +PRODUCTVERSION 0,1,1,1 +FILETYPE VFT_APP +{ + BLOCK "StringFileInfo" + { + BLOCK "040904E4" + { + VALUE "CompanyName", "Melon Factory of Kuribo64" + VALUE "FileVersion", "0.1" + VALUE "FileDescription", "DS emulator, sorta. also 1st quality melon." + VALUE "InternalName", "SDnolem" + VALUE "LegalCopyright", "2016-2017 StapleButter & co." + VALUE "LegalTrademarks", "" + VALUE "OriginalFilename", "zafkflzdasd.exe" + VALUE "ProductName", "melonDS" + VALUE "ProductVersion", "0.1" + } + } + BLOCK "VarFileInfo" + { + VALUE "Translation", 0x0409, 1252 //language codes + } +} + +1 24 "xp.manifest" diff --git a/melonDS.cbp b/melonDS.cbp index 71156cb2..46bf54b3 100644 --- a/melonDS.cbp +++ b/melonDS.cbp @@ -67,6 +67,9 @@ + + @@ -104,8 +107,11 @@ + + + diff --git a/src/wx/InputConfig.cpp b/src/wx/InputConfig.cpp new file mode 100644 index 00000000..ea5f1c88 --- /dev/null +++ b/src/wx/InputConfig.cpp @@ -0,0 +1,81 @@ +/* + Copyright 2016-2017 StapleButter + + This file is part of melonDS. + + melonDS is free software: you can redistribute it and/or modify it under + the terms of the GNU General Public License as published by the Free + Software Foundation, either version 3 of the License, or (at your option) + any later version. + + melonDS is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with melonDS. If not, see http://www.gnu.org/licenses/. +*/ + +#include "../types.h" +#include "InputConfig.h" +#include "../Config.h" + + +wxBEGIN_EVENT_TABLE(InputConfigDialog, wxDialog) +wxEND_EVENT_TABLE() + + +InputConfigDialog::InputConfigDialog(wxWindow* parent) + : wxDialog(parent, -1, "Input configuration - melonDS") +{ + int keyorder[12] = {0, 1, 10, 11, 5, 4, 6, 7, 9, 8, 3, 2}; + char keylabels[12][8] = {"A:", "B:", "Select:", "Start:", "Right:", "Left:", "Up:", "Down:", "R:", "L:", "X:", "Y:"}; + + wxBoxSizer* vboxmain = new wxBoxSizer(wxVERTICAL); + + { + wxPanel* p = new wxPanel(this); + wxBoxSizer* sizer = new wxBoxSizer(wxHORIZONTAL); + + wxStaticBox* kbdside = new wxStaticBox(p, wxID_ANY, "Keyboard"); + { + wxGridSizer* grid = new wxGridSizer(2, 3, 0); + + for (int i = 0; i < 12; i++) + { + int j = keyorder[i]; + + wxStaticText* label = new wxStaticText(kbdside, wxID_ANY, keylabels[j]); + grid->Add(label); + + const char* keyname = SDL_GetKeyName(SDL_GetKeyFromScancode((SDL_Scancode)Config::KeyMapping[j])); + wxButton* btn = new wxButton(kbdside, 100+i, keyname); + grid->Add(btn); + } + + kbdside->SetSizer(grid); + } + sizer->Add(kbdside); + + p->SetSizer(sizer); + vboxmain->Add(p, 0, wxALL&(~wxBOTTOM), 15); + } + + { + wxPanel* p = new wxPanel(this); + wxBoxSizer* sizer = new wxBoxSizer(wxHORIZONTAL); + + wxButton* derp = new wxButton(p, 1001, "derp"); + sizer->Add(derp); + + wxButton* boobs = new wxButton(p, 1002, "boobs"); + sizer->Add(3, 0); + sizer->Add(boobs); + + p->SetSizer(sizer); + vboxmain->Add(p, 0, wxALL|wxALIGN_RIGHT, 15); + } + + SetSizer(vboxmain); + Fit(); +} diff --git a/src/wx/InputConfig.h b/src/wx/InputConfig.h new file mode 100644 index 00000000..c0a60e79 --- /dev/null +++ b/src/wx/InputConfig.h @@ -0,0 +1,39 @@ +/* + Copyright 2016-2017 StapleButter + + This file is part of melonDS. + + melonDS is free software: you can redistribute it and/or modify it under + the terms of the GNU General Public License as published by the Free + Software Foundation, either version 3 of the License, or (at your option) + any later version. + + melonDS is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with melonDS. If not, see http://www.gnu.org/licenses/. +*/ + +#ifndef WX_INPUTCONFIG_H +#define WX_INPUTCONFIG_H + +#include +#ifndef WX_PRECOMP +#include +#endif + +#include + +class InputConfigDialog : public wxDialog +{ +public: + InputConfigDialog(wxWindow* parent); + +private: + wxDECLARE_EVENT_TABLE(); +}; + +#endif // WX_INPUTCONFIG_H + diff --git a/src/wx/main.cpp b/src/wx/main.cpp index b4813afe..058808fe 100644 --- a/src/wx/main.cpp +++ b/src/wx/main.cpp @@ -23,6 +23,8 @@ #include "../NDS.h" #include "../GPU.h" +#include "InputConfig.h" + bool Touching; @@ -58,6 +60,8 @@ wxBEGIN_EVENT_TABLE(MainFrame, wxFrame) EVT_MENU(ID_OPENROM, MainFrame::OnOpenROM) EVT_MENU(ID_EXIT, MainFrame::OnCloseFromMenu) + EVT_MENU(ID_INPUTCONFIG, MainFrame::OnInputConfig) + EVT_PAINT(MainFrame::OnPaint) EVT_IDLE(MainFrame::OnIdle) wxEND_EVENT_TABLE() @@ -179,6 +183,12 @@ void MainFrame::OnOpenROM(wxCommandEvent& event) emustatuschangemutex->Unlock(); } +void MainFrame::OnInputConfig(wxCommandEvent& event) +{ + InputConfigDialog dlg(this); + dlg.ShowModal(); +} + void MainFrame::ProcessSDLEvents() { bool running = (emustatus == 1); diff --git a/src/wx/main.h b/src/wx/main.h index f60e381e..c05a8a00 100644 --- a/src/wx/main.h +++ b/src/wx/main.h @@ -73,6 +73,8 @@ private: void OnCloseFromMenu(wxCommandEvent& event); void OnOpenROM(wxCommandEvent& event); + void OnInputConfig(wxCommandEvent& event); + void ProcessSDLEvents(); void OnPaint(wxPaintEvent& event); diff --git a/xp.manifest b/xp.manifest new file mode 100644 index 00000000..85ca9459 --- /dev/null +++ b/xp.manifest @@ -0,0 +1,23 @@ + + + +Project + + + + + +