From 5de08170c6d3480916b660f5044c29f5e523a174 Mon Sep 17 00:00:00 2001 From: spacy51 Date: Wed, 9 Jan 2008 15:18:40 +0000 Subject: [PATCH] ADDED: Seperate GBC ROM folder support MODIFIED: Directories dialog MODIFIED: File filters for ROMs git-svn-id: https://svn.code.sf.net/p/vbam/code/trunk@276 a31d4220-a93d-0410-bf67-fe4944624d44 --- res/todo.txt | 5 ++ src/win32/Directories.cpp | 126 ++++++++++++++++++------------------- src/win32/Directories.h | 96 ++++++++-------------------- src/win32/MainWnd.cpp | 62 ++++++++++-------- src/win32/MainWnd.h | 3 +- src/win32/MainWndFile.cpp | 13 +++- src/win32/MainWndTools.cpp | 2 +- src/win32/VBA.rc | 59 +++++++++-------- src/win32/resource.h | 8 ++- 9 files changed, 176 insertions(+), 198 deletions(-) diff --git a/res/todo.txt b/res/todo.txt index eadbb4f6..be6af0d7 100644 --- a/res/todo.txt +++ b/res/todo.txt @@ -1,8 +1,13 @@ Important: +- Many games show emulation warnings in the log window (unaligned read, bad read/write addresse) + - Metroid Fusion, Advance Wars 2... + - HQ3x/4x ASM implementation produces wrong interpolation on the image's border - This has already been fixed in the C version; look at hq_base.h / line 343 - 372. The ASM version most likely only has something like skipLine instead of skipLinePlus and skipLineMinus, which is however necessary in order to work correctly. + Unimportant: - DDraw, D3D, OGL: Add full screen device & frequency selection + - Verify BIOS files by checksums instead by file extension \ No newline at end of file diff --git a/src/win32/Directories.cpp b/src/win32/Directories.cpp index 4a1587c8..48699445 100644 --- a/src/win32/Directories.cpp +++ b/src/win32/Directories.cpp @@ -1,6 +1,7 @@ // VisualBoyAdvance - Nintendo Gameboy/GameboyAdvance (TM) emulator. // Copyright (C) 1999-2003 Forgotten // Copyright (C) 2004 Forgotten and the VBA development team +// Copyright (C) 2008 VBA-M development team // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -16,9 +17,6 @@ // along with this program; if not, write to the Free Software Foundation, // Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -// Directories.cpp : implementation file -// - #include "stdafx.h" #include "vba.h" #include "Directories.h" @@ -63,6 +61,7 @@ void Directories::DoDataExchange(CDataExchange* pDX) CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_SAVE_PATH, m_savePath); DDX_Control(pDX, IDC_ROM_PATH, m_romPath); + DDX_Control(pDX, IDC_GBCROM_PATH, m_gbcromPath); DDX_Control(pDX, IDC_GBROM_PATH, m_gbromPath); DDX_Control(pDX, IDC_CAPTURE_PATH, m_capturePath); DDX_Control(pDX, IDC_BATTERY_PATH, m_batteryPath); @@ -71,15 +70,11 @@ void Directories::DoDataExchange(CDataExchange* pDX) BEGIN_MESSAGE_MAP(Directories, CDialog) ON_BN_CLICKED(IDC_BATTERY_DIR, OnBatteryDir) - ON_BN_CLICKED(IDC_BATTERY_DIR_RESET, OnBatteryDirReset) ON_BN_CLICKED(IDC_CAPTURE_DIR, OnCaptureDir) - ON_BN_CLICKED(IDC_CAPTURE_DIR_RESET, OnCaptureDirReset) ON_BN_CLICKED(IDC_GBROM_DIR, OnGbromDir) - ON_BN_CLICKED(IDC_GBROM_DIR_RESET, OnGbromDirReset) ON_BN_CLICKED(IDC_ROM_DIR, OnRomDir) - ON_BN_CLICKED(IDC_ROM_DIR_RESET, OnRomDirReset) ON_BN_CLICKED(IDC_SAVE_DIR, OnSaveDir) - ON_BN_CLICKED(IDC_SAVE_DIR_RESET, OnSaveDirReset) + ON_BN_CLICKED(IDC_GBCROM_DIR, OnGbcromDir) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// @@ -87,40 +82,36 @@ END_MESSAGE_MAP() BOOL Directories::OnInitDialog() { - CDialog::OnInitDialog(); + CDialog::OnInitDialog(); + CString p; + + p = regQueryStringValue("romdir", NULL); + if(!p.IsEmpty()) + GetDlgItem(IDC_ROM_PATH)->SetWindowText(p); + + p = regQueryStringValue("gbcromdir", NULL); + if(!p.IsEmpty()) + GetDlgItem(IDC_GBCROM_PATH)->SetWindowText(p); - CString p = regQueryStringValue("romdir", NULL); - if(!p.IsEmpty()) { - int len = p.GetLength(); - if(len > 0) - if(p[len-1] == '\\') - p = p.Left(len-1); - GetDlgItem(IDC_ROM_PATH)->SetWindowText(p); - } + p = regQueryStringValue("gbromdir", NULL); + if(!p.IsEmpty()) + GetDlgItem(IDC_GBROM_PATH)->SetWindowText(p); - p = regQueryStringValue("gbromdir", NULL); - if(!p.IsEmpty()) { - int len = p.GetLength(); - if(len > 0) - if(p[len-1] == '\\') - p = p.Left(len-1); - GetDlgItem(IDC_GBROM_PATH)->SetWindowText(p); - } + p = regQueryStringValue("batteryDir", NULL); + if(!p.IsEmpty()) + GetDlgItem(IDC_BATTERY_PATH)->SetWindowText( p); - p = regQueryStringValue("batteryDir", NULL); - if(!p.IsEmpty()) - GetDlgItem(IDC_BATTERY_PATH)->SetWindowText( p); - p = regQueryStringValue("saveDir", NULL); - if(!p.IsEmpty()) - GetDlgItem(IDC_SAVE_PATH)->SetWindowText(p); - p = regQueryStringValue("captureDir", NULL); - if(!p.IsEmpty()) - GetDlgItem(IDC_CAPTURE_PATH)->SetWindowText(p); + p = regQueryStringValue("saveDir", NULL); + if(!p.IsEmpty()) + GetDlgItem(IDC_SAVE_PATH)->SetWindowText(p); - CenterWindow(); + p = regQueryStringValue("captureDir", NULL); + if(!p.IsEmpty()) + GetDlgItem(IDC_CAPTURE_PATH)->SetWindowText(p); - return TRUE; // return TRUE unless you set the focus to a control - // EXCEPTION: OCX Property Pages should return FALSE + return TRUE; + // return TRUE unless you set the focus to a control + // EXCEPTION: OCX Property Pages should return FALSE } void Directories::OnBatteryDir() @@ -131,12 +122,6 @@ void Directories::OnBatteryDir() m_batteryPath.SetWindowText(p); } -void Directories::OnBatteryDirReset() -{ - regDeleteValue("batteryDir"); - m_batteryPath.SetWindowText(""); -} - void Directories::OnCaptureDir() { m_capturePath.GetWindowText(initialFolderDir); @@ -145,12 +130,6 @@ void Directories::OnCaptureDir() m_capturePath.SetWindowText(p); } -void Directories::OnCaptureDirReset() -{ - regDeleteValue("captureDir"); - m_capturePath.SetWindowText(""); -} - void Directories::OnGbromDir() { m_gbromPath.GetWindowText(initialFolderDir); @@ -159,10 +138,12 @@ void Directories::OnGbromDir() m_gbromPath.SetWindowText(p); } -void Directories::OnGbromDirReset() +void Directories::OnGbcromDir() { - regDeleteValue("gbromdir"); - m_gbromPath.SetWindowText(""); + m_gbcromPath.GetWindowText(initialFolderDir); + CString p = browseForDir(winResLoadString(IDS_SELECT_ROM_DIR)); + if(!p.IsEmpty()) + m_gbcromPath.SetWindowText(p); } void Directories::OnRomDir() @@ -173,12 +154,6 @@ void Directories::OnRomDir() m_romPath.SetWindowText(p); } -void Directories::OnRomDirReset() -{ - regDeleteValue("romdir"); - m_romPath.SetWindowText(""); -} - void Directories::OnSaveDir() { m_savePath.GetWindowText(initialFolderDir); @@ -187,12 +162,6 @@ void Directories::OnSaveDir() m_savePath.SetWindowText(p); } -void Directories::OnSaveDirReset() -{ - regDeleteValue("saveDir"); - m_savePath.SetWindowText(""); -} - void Directories::OnCancel() { EndDialog(FALSE); @@ -221,6 +190,18 @@ void Directories::OnOK() if( !directoryDoesExist( buffer ) ) SHCreateDirectoryEx( NULL, buffer, NULL ); + m_gbcromPath.GetWindowText(buffer); + if( !buffer.IsEmpty() ) + regSetStringValue( "gbcromdir", buffer ); + if( buffer[0] == '.' ) { + strcpy( temp, baseDir ); + strcat( temp, "\\" ); + strcat( temp, buffer ); + buffer = temp; + } + if( !directoryDoesExist( buffer ) ) + SHCreateDirectoryEx( NULL, buffer, NULL ); + m_gbromPath.GetWindowText(buffer); if( !buffer.IsEmpty() ) regSetStringValue( "gbromdir", buffer ); @@ -302,3 +283,20 @@ CString Directories::browseForDir(CString title) } return res; } + +// returns true if the directory does exist +bool Directories::directoryDoesExist(const char *directory) +{ + HANDLE hDir; + hDir = CreateFile( + directory, + GENERIC_READ, + FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, + NULL, + OPEN_EXISTING, + FILE_FLAG_BACKUP_SEMANTICS, + NULL ); + bool retval = (hDir == INVALID_HANDLE_VALUE) ? false : true; + CloseHandle( hDir ); + return retval; +} diff --git a/src/win32/Directories.h b/src/win32/Directories.h index 8479694e..332d9fa4 100644 --- a/src/win32/Directories.h +++ b/src/win32/Directories.h @@ -1,7 +1,7 @@ -// -*- C++ -*- // VisualBoyAdvance - Nintendo Gameboy/GameboyAdvance (TM) emulator. // Copyright (C) 1999-2003 Forgotten // Copyright (C) 2004 Forgotten and the VBA development team +// Copyright (C) 2008 VBA-M development team // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -17,84 +17,38 @@ // along with this program; if not, write to the Free Software Foundation, // Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -#if !defined(AFX_DIRECTORIES_H__7ADB14C1_3C1B_4294_8D66_A4E87D6FC731__INCLUDED_) -#define AFX_DIRECTORIES_H__7ADB14C1_3C1B_4294_8D66_A4E87D6FC731__INCLUDED_ -#if _MSC_VER > 1000 #pragma once -#endif // _MSC_VER > 1000 -// Directories.h : header file -// -///////////////////////////////////////////////////////////////////////////// -// Directories dialog class Directories : public CDialog { - // Construction - public: - CString initialFolderDir; - CString browseForDir(CString title); - Directories(CWnd* pParent = NULL); // standard constructor +public: + Directories(CWnd* pParent = NULL); + enum { IDD = IDD_DIRECTORIES }; - // Dialog Data - //{{AFX_DATA(Directories) - enum { IDD = IDD_DIRECTORIES }; - CEdit m_savePath; - CEdit m_romPath; - CEdit m_gbromPath; - CEdit m_capturePath; - CEdit m_batteryPath; - //}}AFX_DATA +protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + virtual BOOL OnInitDialog(); + afx_msg void OnBatteryDir(); + afx_msg void OnCaptureDir(); + afx_msg void OnGbromDir(); + afx_msg void OnGbcromDir(); + afx_msg void OnRomDir(); + afx_msg void OnSaveDir(); + virtual void OnCancel(); + virtual void OnOK(); + DECLARE_MESSAGE_MAP() - - // Overrides - // ClassWizard generated virtual function overrides - //{{AFX_VIRTUAL(Directories) - protected: - virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support - //}}AFX_VIRTUAL - - // Implementation - protected: - - // Generated message map functions - //{{AFX_MSG(Directories) - virtual BOOL OnInitDialog(); - afx_msg void OnBatteryDir(); - afx_msg void OnBatteryDirReset(); - afx_msg void OnCaptureDir(); - afx_msg void OnCaptureDirReset(); - afx_msg void OnGbromDir(); - afx_msg void OnGbromDirReset(); - afx_msg void OnRomDir(); - afx_msg void OnRomDirReset(); - afx_msg void OnSaveDir(); - afx_msg void OnSaveDirReset(); - virtual void OnCancel(); - virtual void OnOK(); - //}}AFX_MSG - DECLARE_MESSAGE_MAP() private: + CEdit m_savePath; + CEdit m_romPath; + CEdit m_gbcromPath; + CEdit m_gbromPath; + CEdit m_capturePath; + CEdit m_batteryPath; + CString initialFolderDir; - bool directoryDoesExist(const char *directory) - { // returns true if the directory does exist - HANDLE hDir; - hDir = CreateFile( - directory, - GENERIC_READ, - FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE, - NULL, - OPEN_EXISTING, - FILE_FLAG_BACKUP_SEMANTICS, - NULL ); - bool retval = (hDir == INVALID_HANDLE_VALUE) ? false : true; - CloseHandle( hDir ); - return retval; - } + CString browseForDir(CString title); + bool directoryDoesExist(const char *directory); }; - - //{{AFX_INSERT_LOCATION}} - // Microsoft Visual C++ will insert additional declarations immediately before the previous line. - -#endif // !defined(AFX_DIRECTORIES_H__7ADB14C1_3C1B_4294_8D66_A4E87D6FC731__INCLUDED_) diff --git a/src/win32/MainWnd.cpp b/src/win32/MainWnd.cpp index 0d575563..c8113e81 100644 --- a/src/win32/MainWnd.cpp +++ b/src/win32/MainWnd.cpp @@ -450,6 +450,7 @@ BEGIN_MESSAGE_MAP(MainWnd, CWnd) ON_WM_NCLBUTTONDOWN() ON_WM_WINDOWPOSCHANGING() ON_COMMAND(ID_EMULATOR_BIOSFILES, &MainWnd::OnEmulatorBiosfiles) + ON_COMMAND(ID_FILE_OPEN_GBC, &MainWnd::OnFileOpenGbc) END_MESSAGE_MAP() @@ -1107,14 +1108,43 @@ void MainWnd::OnSystemMinimize() } -bool MainWnd::fileOpenSelect( bool gb ) +bool MainWnd::fileOpenSelect( int system ) { theApp.dir = _T(""); CString initialDir; - if( gb ) { - initialDir = regQueryStringValue( _T("gbromdir"), _T(".") ); - } else { + int selectedFilter = 0; + LPCTSTR exts[] = { _T(""), _T(""), _T(""), _T("") }; + CString filter; + CString title; + switch( system ) + { + case 0: + // GBA initialDir = regQueryStringValue( _T("romdir"), _T(".") ); + selectedFilter = regQueryDwordValue( _T("selectedFilter"), 0); + if( (selectedFilter < 0) || (selectedFilter > 2) ) { + selectedFilter = 0; + } + filter = winLoadFilter( IDS_FILTER_ROM ); + break; + case 1: + // GBC + initialDir = regQueryStringValue( _T("gbcromdir"), _T(".") ); + // TODO: memorize selected filter for GBC as well + filter = winLoadFilter( IDS_FILTER_GBCROM ); + break; + case 2: + // GB + initialDir = regQueryStringValue( _T("gbromdir"), _T(".") ); + // TODO: memorize selected filter for GB as well + filter = winLoadFilter( IDS_FILTER_GBROM ); + break; + } + + title = winResLoadString( IDS_SELECT_ROM ); + + if( !initialDir.IsEmpty() ) { + theApp.dir = initialDir; } if( initialDir[0] == '.' ) { @@ -1128,35 +1158,13 @@ bool MainWnd::fileOpenSelect( bool gb ) initialDir = baseDir; } - if( !initialDir.IsEmpty() ) { - theApp.dir = initialDir; - } - - int selectedFilter = 0; - if( !gb ) { - selectedFilter = regQueryDwordValue( _T("selectedFilter"), 0); - if( (selectedFilter < 0) || (selectedFilter > 2) ) { - selectedFilter = 0; - } - } - theApp.szFile = _T(""); - LPCTSTR exts[] = { _T(""), _T(""), _T(""), _T("") }; - CString filter; - CString title; - if( gb ) { - filter = winLoadFilter( IDS_FILTER_GBROM ); - title = winResLoadString( IDS_SELECT_ROM ); - } else { - filter = winLoadFilter( IDS_FILTER_ROM ); - title = winResLoadString( IDS_SELECT_ROM ); - } FileDlg dlg( this, _T(""), filter, selectedFilter, _T(""), exts, theApp.dir, title, false); if( dlg.DoModal() == IDOK ) { - if( !gb ) { + if( system == 0 ) { regSetDwordValue( _T("selectedFilter"), dlg.m_ofn.nFilterIndex ); } theApp.szFile = dlg.GetPathName(); diff --git a/src/win32/MainWnd.h b/src/win32/MainWnd.h index 4c3e146b..a2184bac 100644 --- a/src/win32/MainWnd.h +++ b/src/win32/MainWnd.h @@ -55,7 +55,7 @@ class MainWnd : public CWnd void winMouseOn(); void screenCapture(int captureNumber); HACCEL m_hAccelTable; - bool fileOpenSelect( bool gb = false ); + bool fileOpenSelect( int system ); afx_msg LRESULT OnConfirmMode(WPARAM, LPARAM); afx_msg LRESULT OnMySysCommand(WPARAM, LPARAM); afx_msg void OnUpdateFileLoadGameSlot(CCmdUI *pCmdUI); @@ -443,6 +443,7 @@ public: afx_msg void OnNcLButtonDown(UINT nHitTest, CPoint point); afx_msg void OnWindowPosChanging(WINDOWPOS* lpwndpos); afx_msg void OnEmulatorBiosfiles(); + afx_msg void OnFileOpenGbc(); }; ///////////////////////////////////////////////////////////////////////////// diff --git a/src/win32/MainWndFile.cpp b/src/win32/MainWndFile.cpp index b178511c..c59aead9 100644 --- a/src/win32/MainWndFile.cpp +++ b/src/win32/MainWndFile.cpp @@ -45,7 +45,7 @@ extern void InterframeCleanup(); void MainWnd::OnFileOpen() { theApp.winCheckFullscreen(); - if( fileOpenSelect( false ) ) { + if( fileOpenSelect( 0 ) ) { FileRun(); } } @@ -167,7 +167,16 @@ void MainWnd::OnUpdateFileClose(CCmdUI* pCmdUI) void MainWnd::OnFileOpengameboy() { theApp.winCheckFullscreen(); - if( fileOpenSelect( true ) ) { + if( fileOpenSelect( 2 ) ) { + FileRun(); + } +} + + +void MainWnd::OnFileOpenGbc() +{ + theApp.winCheckFullscreen(); + if( fileOpenSelect( 1 ) ) { FileRun(); } } diff --git a/src/win32/MainWndTools.cpp b/src/win32/MainWndTools.cpp index b7946480..5fd6f52a 100644 --- a/src/win32/MainWndTools.cpp +++ b/src/win32/MainWndTools.cpp @@ -234,7 +234,7 @@ void MainWnd::OnUpdateToolsDebugGdb(CCmdUI* pCmdUI) void MainWnd::OnToolsDebugLoadandwait() { theApp.winCheckFullscreen(); - if(fileOpenSelect()) { + if(fileOpenSelect(0)) { if(FileRun()) { if(theApp.cartridgeType != 0) { systemMessage(IDS_ERROR_NOT_GBA_IMAGE, "Error: not a GBA image"); diff --git a/src/win32/VBA.rc b/src/win32/VBA.rc index 2a65e3d7..e1cadee1 100644 --- a/src/win32/VBA.rc +++ b/src/win32/VBA.rc @@ -150,37 +150,34 @@ BEGIN LTEXT "mudlord\nNach\nJonas Quinn\nDJRobX\nSpacy",IDC_STATIC,15,70,143,44 END -IDD_DIRECTORIES DIALOGEX 0, 0, 222, 271 +IDD_DIRECTORIES DIALOGEX 0, 0, 222, 270 STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -EXSTYLE WS_EX_TOOLWINDOW CAPTION "Directories" FONT 8, "MS Sans Serif", 0, 0, 0x0 BEGIN - GROUPBOX "Gameboy Advance ROM Images",IDC_STATIC,6,6,210,42 - EDITTEXT IDC_ROM_PATH,12,18,198,12,ES_AUTOHSCROLL - PUSHBUTTON "Browse...",IDC_ROM_DIR,12,30,90,12 - PUSHBUTTON "Reset",IDC_ROM_DIR_RESET,120,30,90,12 - GROUPBOX "Gameboy / Gameboy Color ROM Images",IDC_STATIC,6,48,210,42 - EDITTEXT IDC_GBROM_PATH,12,60,198,12,ES_AUTOHSCROLL - PUSHBUTTON "Browse...",IDC_GBROM_DIR,12,72,90,12 - PUSHBUTTON "Reset",IDC_GBROM_DIR_RESET,120,72,84,12 - GROUPBOX "Gameboy Internal Battery Saves",IDC_STATIC,6,90,210,42 - EDITTEXT IDC_BATTERY_PATH,12,102,198,12,ES_AUTOHSCROLL - PUSHBUTTON "Browse...",IDC_BATTERY_DIR,12,114,90,12 - PUSHBUTTON "Reset",IDC_BATTERY_DIR_RESET,120,114,90,12 - GROUPBOX "VisualBoyAdvance Save Games",IDC_STATIC,6,132,210,42 - EDITTEXT IDC_SAVE_PATH,12,144,198,12,ES_AUTOHSCROLL - PUSHBUTTON "Browse...",IDC_SAVE_DIR,12,156,90,12 - PUSHBUTTON "Reset",IDC_SAVE_DIR_RESET,120,156,90,12 - GROUPBOX "Screenshots",IDC_STATIC,6,174,210,42 - EDITTEXT IDC_CAPTURE_PATH,12,186,198,12,ES_AUTOHSCROLL - PUSHBUTTON "Browse...",IDC_CAPTURE_DIR,12,198,90,12 - PUSHBUTTON "Reset",IDC_CAPTURE_DIR_RESET,120,198,90,12 - DEFPUSHBUTTON "OK",IDOK,120,234,90,12 - PUSHBUTTON "Cancel",IDCANCEL,120,246,90,12 + GROUPBOX "Game Boy Advance ROMs",IDC_STATIC,6,6,210,30 + EDITTEXT IDC_ROM_PATH,12,18,180,12,ES_AUTOHSCROLL + PUSHBUTTON "...",IDC_ROM_DIR,192,18,18,12 + GROUPBOX "Game Boy ROMs",IDC_STATIC,6,78,210,30 + EDITTEXT IDC_GBROM_PATH,12,90,180,12,ES_AUTOHSCROLL + PUSHBUTTON "...",IDC_GBROM_DIR,192,90,18,12 + GROUPBOX "Native Saves",IDC_STATIC,6,114,210,30 + EDITTEXT IDC_BATTERY_PATH,12,126,180,12,ES_AUTOHSCROLL + PUSHBUTTON "...",IDC_BATTERY_DIR,192,126,18,12 + GROUPBOX "Emulator Saves",IDC_STATIC,6,150,210,30 + EDITTEXT IDC_SAVE_PATH,12,162,180,12,ES_AUTOHSCROLL + PUSHBUTTON "...",IDC_SAVE_DIR,192,162,18,12 + GROUPBOX "Screenshots",IDC_STATIC,6,186,210,30 + EDITTEXT IDC_CAPTURE_PATH,12,198,180,12,ES_AUTOHSCROLL + PUSHBUTTON "...",IDC_CAPTURE_DIR,192,198,18,12 + DEFPUSHBUTTON "OK",IDOK,120,246,48,18 + PUSHBUTTON "Cancel",IDCANCEL,168,246,48,18 GROUPBOX "Relative Paths",IDC_STATIC,6,222,102,42 - CONTROL "Example:\n .\\battery\n ..\\snapshots\\gba",IDC_STATIC, + CONTROL "Example:\n .\\battery\n ..\\screenshots\\vba",IDC_STATIC, "Static",SS_LEFTNOWORDWRAP | WS_GROUP,12,234,90,24 + GROUPBOX "Game Boy Color ROMs",IDC_STATIC,6,42,210,30 + EDITTEXT IDC_GBCROM_PATH,12,54,180,12,ES_AUTOHSCROLL + PUSHBUTTON "...",IDC_GBCROM_DIR,192,54,18,12 END IDD_CONFIG DIALOGEX 0, 0, 448, 102 @@ -1150,7 +1147,7 @@ BEGIN LEFTMARGIN, 7 RIGHTMARGIN, 215 TOPMARGIN, 7 - BOTTOMMARGIN, 264 + BOTTOMMARGIN, 263 END IDD_CONFIG, DIALOG @@ -1510,8 +1507,9 @@ IDR_MENU MENU BEGIN POPUP "&File" BEGIN - MENUITEM "Open...", ID_FILE_OPEN - MENUITEM "Open Gameboy...", ID_FILE_OPENGAMEBOY + MENUITEM "Open GBA...", ID_FILE_OPEN + MENUITEM "Open GBC...", ID_FILE_OPEN_GBC + MENUITEM "Open GB...", ID_FILE_OPENGAMEBOY MENUITEM SEPARATOR MENUITEM "Load...", ID_FILE_LOAD MENUITEM "Save...", ID_FILE_SAVE @@ -2120,7 +2118,7 @@ BEGIN IDS_FAILED_TO_LOAD_LIBRARY "Failed to load library %s" IDS_FAILED_TO_GET_LOCINFO "Failed to get locale information" IDS_SELECT_CHEAT_LIST_NAME "Select cheat list name" - IDS_FILTER_ROM "All Gameboy _*.BIN;*.AGB;*.GBA;*.MB;*.ELF;*.GB;*.SGB;*.CGB;*.GBC;*.ZIP;*.7Z;*.Z;*.GZ_Gameboy Advance_*.BIN;*.AGB;*.GBA_Gameboy_*.GB;*.SGB_Gameboy Color_*.CGB;*.GBC__" + IDS_FILTER_ROM "Game Boy Advance ROMs_*.GBA;*.AGB;*.BIN;*.ELF;*.ZIP;*.7Z;*.Z;*.GZ__" IDS_FILTER_SGM "VisualBoyAdvance Save Game_*.SGM__" IDS_FILTER_CHEAT_LIST "VisualBoyAdvance Cheat List_*.CLT__" IDS_FILTER_PNG "PNG Image_*.PNG_BMP Image_*.BMP__" @@ -2160,7 +2158,7 @@ BEGIN IDS_ADD_CBA_CODE "Add CodeBreakerAdvance code" IDS_FILTER_WAV "Wave file_*.WAV__" IDS_SELECT_WAV_NAME "Select wave file name" - IDS_FILTER_GBROM "All Gameboy_*.GB;*.SGB;*.CGB;*.GBC;*.ZIP;*.7Z;*.Z;*.GZ_Gameboy_*.GB_Super Gameboy_*.SGB_Gameboy Color _*.CGB;*.GBC__" + IDS_FILTER_GBROM "Game Boy ROMs_*.GB;*.SGB;*.ZIP;*.7Z;*.Z;*.GZ__" IDS_FILTER_PAL "Windows Palette (*.PAL)_*.PAL_PaintShop Palette (*.PAL)_*.PAL_Adobe Color Table (*.ACT)_*.ACT__" IDS_SELECT_PALETTE_NAME "Select palette name:" IDS_SEARCH_PRODUCED_NO_RESULTS "Search produced no results." @@ -2207,6 +2205,7 @@ BEGIN IDS_AVI_CANNOT_CREATE_AUDIO "Cannot create audio stream in AVI file." IDS_AVI_CANNOT_WRITE_VIDEO "Cannot write video frame to AVI file." IDS_AVI_CANNOT_WRITE_AUDIO "Cannot write audio frame to AVI file." + IDS_FILTER_GBCROM "Game Boy Color ROMs_*.GBC;*.CGB;*.ZIP;*.7Z;*.Z;*.GZ__" END #endif // English (U.S.) resources diff --git a/src/win32/resource.h b/src/win32/resource.h index 795e5378..080c7d92 100644 --- a/src/win32/resource.h +++ b/src/win32/resource.h @@ -185,8 +185,10 @@ #define IDC_CAPTURE_DIR_RESET 1032 #define IDC_LT 1033 #define IDS_CANNOT_CREATESOUNDBUFFER 1033 +#define IDC_GBCROM_PATH 1033 #define IDC_LE 1034 #define IDS_CANNOT_SETFORMAT_PRIMARY 1034 +#define IDC_GBCROM_DIR 1034 #define IDC_GT 1035 #define IDS_CANNOT_CREATESOUNDBUFFER_SEC 1035 #define IDC_GE 1036 @@ -520,7 +522,6 @@ #define IDC_ENABLE_GBA_BIOS 1276 #define IDC_SELECT_GB_BIOS_PATH 1277 #define IDC_SELECT_GBA_BIOS_PATH 1278 -#define IDC_BUTTON1 1278 #define IDC_CLEAR_ALL 1278 #define IDS_OAL_NODEVICE 2000 #define IDS_OAL_NODLL 2001 @@ -529,6 +530,7 @@ #define IDS_AVI_CANNOT_CREATE_AUDIO 2004 #define IDS_AVI_CANNOT_WRITE_VIDEO 2005 #define IDS_AVI_CANNOT_WRITE_AUDIO 2006 +#define IDS_FILTER_GBCROM 2007 #define ID_HELP_ABOUT 40001 #define ID_FILE_EXIT 40002 #define ID_OPTIONS_VIDEO_FRAMESKIP_0 40003 @@ -835,13 +837,15 @@ #define ID_RENDERAPI_MOTIONBLUR 40354 #define ID_RENDERAPI_D3DMOTIONBLUR 40355 #define ID_EMULATOR_BIOSFILES 40356 +#define ID_FILE_OPENGBC 40357 +#define ID_FILE_OPEN_GBC 40358 // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 162 -#define _APS_NEXT_COMMAND_VALUE 40357 +#define _APS_NEXT_COMMAND_VALUE 40359 #define _APS_NEXT_CONTROL_VALUE 1279 #define _APS_NEXT_SYMED_VALUE 103 #endif