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
This commit is contained in:
spacy51 2008-01-09 15:18:40 +00:00
parent 31f519cca6
commit 5de08170c6
9 changed files with 176 additions and 198 deletions

View File

@ -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

View File

@ -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;
}

View File

@ -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_)

View File

@ -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();

View File

@ -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();
};
/////////////////////////////////////////////////////////////////////////////

View File

@ -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();
}
}

View File

@ -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");

View File

@ -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

View File

@ -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