diff --git a/src/wx/cmdevents.cpp b/src/wx/cmdevents.cpp
index a8c27ac8..303450c2 100644
--- a/src/wx/cmdevents.cpp
+++ b/src/wx/cmdevents.cpp
@@ -2389,26 +2389,6 @@ EVT_HANDLER(Translate, "Translations")
wxLaunchDefaultBrowser(wxT("http://www.transifex.com/projects/p/vba-m"));
}
-EVT_HANDLER(UpdateRDB, "Update ROM database")
-{
- int ret = wxMessageBox(_("This will download and update three GBA No-Intro DAT files. Do you want to continue?"),
- _("Confirm Update"), wxYES_NO | wxICON_EXCLAMATION);
-
- if (ret == wxYES) {
- DownloadFile(_T("sourceforge.net"), _T("/p/vbam/code/HEAD/tree/trunk/data/Nintendo%20-%20Game%20Boy%20Advance.zip?format=raw"));
- DownloadFile(_T("sourceforge.net"), _T("/p/vbam/code/HEAD/tree/trunk/data/Nintendo%20-%20Game%20Boy%20Advance%20%28Scene%29.zip?format=raw"));
- DownloadFile(_T("sourceforge.net"), _T("/p/vbam/code/HEAD/tree/trunk/data/Official%20No-Intro%20Nintendo%20Gameboy%20Advance%20Number%20%28Date%29.zip?format=raw"));
- }
-}
-
-EVT_HANDLER(UpdateEmu, "Check for updates")
-{
- if (!CheckForUpdates()) {
- wxMessageBox(_("There are no new updates at this time."),
- _("Check for updates"), wxOK | wxICON_INFORMATION);
- }
-}
-
// was About
EVT_HANDLER(wxID_ABOUT, "About...")
{
@@ -2431,7 +2411,7 @@ EVT_HANDLER(wxID_ABOUT, "About...")
ai.SetWebSite(wxT("http://www.vba-m.com/"));
ai.SetIcon(GetIcon());
ai.SetDescription(_("Nintendo GameBoy (+Color+Advance) emulator."));
- ai.SetCopyright(_("Copyright (C) 1999-2003 Forgotten\nCopyright (C) 2004-2006 VBA development team\nCopyright (C) 2007-2015 VBA-M development team"));
+ ai.SetCopyright(_("Copyright (C) 1999-2003 Forgotten\nCopyright (C) 2004-2006 VBA development team\nCopyright (C) 2007-2017 VBA-M development team"));
ai.SetLicense(_("This program is free software: you can redistribute it and/or modify\n"
"it under the terms of the GNU General Public License as published by\n"
"the Free Software Foundation, either version 2 of the License, or\n"
@@ -2468,8 +2448,9 @@ EVT_HANDLER(wxID_ABOUT, "About...")
ai.AddDeveloper(wxT("xKiv"));
ai.AddDeveloper(wxT("skidau"));
ai.AddDeveloper(wxT("TheCanadianBacon"));
- ai.AddDeveloper(wxT("Caelum"));
+ ai.AddDeveloper(wxT("rkitover"));
ai.AddDeveloper(wxT("Orig. VBA team"));
+ ai.AddDeveloper(wxT("... many contributors who send us patches/PRs"));
wxAboutBox(ai);
}
diff --git a/src/wx/panel.cpp b/src/wx/panel.cpp
index 757524fc..cb796d9a 100644
--- a/src/wx/panel.cpp
+++ b/src/wx/panel.cpp
@@ -975,15 +975,6 @@ void GameArea::OnIdle(wxIdleEvent& event)
}
}
-#ifdef __WXMSW__
-
- // Check for online updates
- if (gopts.onlineupdates > 0 && !emusys) {
- wxGetApp().frame->CheckForUpdates();
- }
-
-#endif
-
if (!emusys)
return;
diff --git a/src/wx/wxvbam.cpp b/src/wx/wxvbam.cpp
index 25d696ae..2f854437 100644
--- a/src/wx/wxvbam.cpp
+++ b/src/wx/wxvbam.cpp
@@ -642,174 +642,6 @@ void MainFrame::OnMenu(wxContextMenuEvent& event)
}
}
-void MainFrame::DownloadFile(wxString host, wxString url)
-{
- wxHTTP get;
- get.SetHeader(_T("Content-type"), _T("text/html; charset=utf-8"));
- get.SetTimeout(10);
-
- while (!get.Connect(host))
- wxSleep(5);
-
- wxApp::IsMainLoopRunning();
- wxInputStream* httpStream = get.GetInputStream(url);
-
- if (get.GetError() == wxPROTO_NOERR) {
- if (httpStream != NULL) {
- wxZipInputStream zip(httpStream);
- wxZipEntry* entry;
-
- while (entry = zip.GetNextEntry()) {
- wxFileName name(wxGetApp().data_path, entry->GetName(), wxEmptyString);
-
- if (!entry->IsDir()) {
- zip.OpenEntry(*entry);
-
- if (zip.CanRead()) {
- wxFileOutputStream file(name.GetFullPath());
-
- if (file.IsOk()) {
- zip.Read(file);
- }
- }
- }
- }
- }
- }
-
- get.Close();
-}
-
-void MainFrame::UpdateFile(wxString host, wxString url)
-{
- wxProgressDialog progress(_T("Downloading..."), _T("Please wait while the VisualBoyAdvance-M update is downloading."));
- wxHTTP get;
- get.SetHeader(_T("Content-type"), _T("text/html; charset=utf-8"));
- get.SetTimeout(10);
-
- while (!get.Connect(host))
- wxSleep(5);
-
- wxInputStream* httpStream = get.GetInputStream(url);
-
- if (get.GetError() == wxPROTO_NOERR) {
- if (httpStream != NULL) {
- size_t size = httpStream->GetSize();
- char* data = new char[size];
- wxFileName name(wxStandardPaths::Get().GetPluginsDir(), url.AfterLast('/'), wxEmptyString);
-
- if (httpStream) {
- size_t chunks = 100;
- size_t chunkSize = httpStream->GetSize() / chunks;
- char* fileContent = new char[chunkSize];
-#if (wxMAJOR_VERSION >= 3)
- progress.SetRange(chunks);
-#endif
- wxFFile file(name.GetFullPath(), _T("wb"));
-
- for (size_t i = 0; i <= chunks; i++) {
- progress.Update(i);
- httpStream->Read(fileContent, chunkSize);
- file.Write(fileContent, httpStream->LastRead());
- }
-
- file.Flush();
- wxDELETE(fileContent);
- }
-
- if (name.FileExists() && name.GetFullName().Lower().Contains(wxT(".7z"))) {
- utilExtract(name.GetPathWithSep().mb_str(wxConvUTF8), name.GetFullName().mb_str(wxConvUTF8));
- }
-
- delete[] data;
- delete httpStream;
- }
- }
-
- get.Close();
-}
-
-wxString MainFrame::CheckForUpdates(wxString host, wxString url)
-{
- wxString update_url = wxT("");
- wxHTTP get;
- get.SetHeader(_T("Content-type"), _T("text/html; charset=utf-8"));
-#ifdef __WXMSW__
- get.SetHeader(wxT("User-Agent"), wxT("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0"));
-#endif
- get.SetTimeout(10);
-
- while (!get.Connect(host))
- wxSleep(5);
-
- wxInputStream* httpStream = get.GetInputStream(url);
-
- if (get.GetError() == wxPROTO_NOERR) {
- if (httpStream != NULL) {
- size_t size = httpStream->GetSize();
-
- if (httpStream) {
- wxTextInputStream text(*httpStream, wxT("\x09"), wxConvUTF8);
-
- while (httpStream->IsOk() && !httpStream->Eof() && update_url.IsEmpty()) {
- wxString line = text.ReadLine();
-
- if (line.Contains(wxT("direct-download"))) {
- wxURL redirect_url(line.SubString(line.Find(wxT("http://")), line.Find(wxT("\" "))).BeforeLast('\"'));
- update_url = CheckForUpdates(redirect_url.GetServer(), redirect_url.GetPath() + wxT("?") + redirect_url.GetQuery());
- }
-
- if (line.Contains(wxT(" redirected "))) {
- update_url = line.SubString(line.Find(wxT("http://")), line.Find(wxT(";"))).BeforeLast(';');
- }
- }
- }
-
- delete httpStream;
- }
- }
-
- get.Close();
- return update_url;
-}
-
-bool MainFrame::CheckForUpdates()
-{
-#ifndef __WXMSW__
- int ret = wxMessageBox(_("Online updates are available on Windows only. Please browse this site for updates.\n\nhttps://sourceforge.net/projects/vbam/files/latest/download"),
- _("Online Update"), wxOK | wxICON_INFORMATION);
- return true;
-#endif
- bool new_update_available = false;
- wxString update_url = CheckForUpdates(_T("sourceforge.net"), _T("/projects/vbam/files/latest/download"));
-
- if (!update_url.IsEmpty()) {
- wxFileConfig* cfg = wxGetApp().cfg;
- wxString update_filename = update_url.AfterLast('/');
-
- if (gopts.last_updated_filename != update_filename) {
- new_update_available = true;
- int ret = wxMessageBox(_("A new update is available. To update, VisualBoyAdvance-M must be Run as administrator. Would you like to download and update VisualBoyAdvance-M?\n\nhttps://sourceforge.net/projects/vbam/files/latest/download"),
- _("New Update Available"), wxYES_NO | wxICON_QUESTION);
-
- if (ret == wxYES) {
- wxURL url(update_url);
- UpdateFile(url.GetServer(), url.GetPath());
- ret = wxMessageBox(_("The update has been downloaded and installed. Please restart VisualBoyAdvance-M."),
- _("Update Downloaded"), wxOK | wxICON_INFORMATION);
- gopts.last_updated_filename = update_filename;
- cfg->Write(wxT("General/LastUpdatedFileName"), gopts.last_updated_filename);
- }
- }
-
- gopts.last_update = wxDateTime::Now().GetTicks();
- cfg->Write(wxT("General/LastUpdated"), gopts.last_update);
- cfg->Flush();
- }
-
- return new_update_available;
-}
-
wxString MainFrame::GetGamePath(wxString path)
{
wxString game_path = path;
diff --git a/src/wx/wxvbam.h b/src/wx/wxvbam.h
index 330969a1..d2cf5712 100644
--- a/src/wx/wxvbam.h
+++ b/src/wx/wxvbam.h
@@ -297,9 +297,6 @@ public:
// call this to update the viewers once a frame:
void UpdateViewers();
- // Check for online updates to the emulator
- bool CheckForUpdates();
-
virtual bool MenusOpened() { return menus_opened != 0; }
virtual void SetMenusOpened(bool state);
@@ -354,10 +351,6 @@ private:
// Load a named wxDialog from the XRC file
wxDialog* LoadXRCropertySheetDialog(const char* name);
- void DownloadFile(wxString host, wxString url);
- void UpdateFile(wxString host, wxString url);
- wxString CheckForUpdates(wxString host, wxString url);
-
#include "cmdhandlers.h"
};
diff --git a/src/wx/xrc/MainMenu.xrc b/src/wx/xrc/MainMenu.xrc
index 53130575..e02a4925 100644
--- a/src/wx/xrc/MainMenu.xrc
+++ b/src/wx/xrc/MainMenu.xrc
@@ -626,12 +626,14 @@
+