Added items remotely
D:\Projects\VisualBoy Advance-M-1.8.0 source\src\win32\VBA.cpp D:\Projects\VisualBoy Advance-M-1.8.0 source\src\win32\VBA.h D:\Projects\VisualBoy Advance-M-1.8.0 source\src\win32\VBA.rc git-svn-id: https://svn.code.sf.net/p/vbam/code/trunk@433 a31d4220-a93d-0410-bf67-fe4944624d44
This commit is contained in:
parent
5f8e3c5cef
commit
9085786118
|
@ -0,0 +1,278 @@
|
||||||
|
// -*- C++ -*-
|
||||||
|
// VisualBoyAdvance - Nintendo Gameboy/GameboyAdvance (TM) emulator.
|
||||||
|
// Copyright (C) 1999-2003 Forgotten
|
||||||
|
// Copyright (C) 2005 Forgotten and the VBA 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
|
||||||
|
// the Free Software Foundation; either version 2, or(at your option)
|
||||||
|
// any later version.
|
||||||
|
//
|
||||||
|
// This program 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 this program; if not, write to the Free Software Foundation,
|
||||||
|
// Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
|
// VBA.h : main header file for the VBA application
|
||||||
|
//
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#ifndef __AFXWIN_H__
|
||||||
|
#error include 'stdafx.h' before including this file for PCH
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "stdafx.h"
|
||||||
|
#include "resource.h"
|
||||||
|
//#include <afxtempl.h>
|
||||||
|
|
||||||
|
#include "AcceleratorManager.h"
|
||||||
|
#include "Display.h"
|
||||||
|
#include "Input.h"
|
||||||
|
#include "IUpdate.h"
|
||||||
|
#include "Sound.h"
|
||||||
|
#include "../System.h"
|
||||||
|
#include "../Util.h"
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// VBA:
|
||||||
|
// See VBA.cpp for the implementation of this class
|
||||||
|
//
|
||||||
|
|
||||||
|
enum VIDEO_SIZE{
|
||||||
|
VIDEO_1X, VIDEO_2X, VIDEO_3X, VIDEO_4X,
|
||||||
|
VIDEO_320x240, VIDEO_640x480, VIDEO_800x600, VIDEO_1024x768, VIDEO_1280x1024,
|
||||||
|
VIDEO_OTHER
|
||||||
|
};
|
||||||
|
|
||||||
|
enum pixelFilterType
|
||||||
|
{
|
||||||
|
FILTER_NONE,
|
||||||
|
|
||||||
|
FILTER_SIMPLE2X, FILTER_PIXELATE, FILTER_TVMODE, FILTER_SCANLINES,
|
||||||
|
FILTER_PLUGIN,
|
||||||
|
FILTER_BILINEAR, FILTER_BILINEARPLUS, FILTER_MAMESCALE2X,
|
||||||
|
FILTER_2XSAI, FILTER_SUPER2XSAI, FILTER_SUPEREAGLE, FILTER_LQ2X, FILTER_HQ2X,
|
||||||
|
|
||||||
|
FILTER_SIMPLE3X, FILTER_HQ3X,
|
||||||
|
|
||||||
|
FILTER_SIMPLE4X, FILTER_HQ4X
|
||||||
|
};
|
||||||
|
|
||||||
|
#define REWIND_SIZE 400000
|
||||||
|
|
||||||
|
class AVIWrite;
|
||||||
|
class WavWriter;
|
||||||
|
|
||||||
|
class VBA : public CWinApp
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
CMenu m_menu;
|
||||||
|
HMENU menu;
|
||||||
|
HMENU popup;
|
||||||
|
bool mode320Available;
|
||||||
|
bool mode640Available;
|
||||||
|
bool mode800Available;
|
||||||
|
bool mode1024Available;
|
||||||
|
bool mode1280Available;
|
||||||
|
int windowPositionX;
|
||||||
|
int windowPositionY;
|
||||||
|
void (*filterFunction)(u8*,u32,u8*,u8*,u32,int,int);
|
||||||
|
void (*ifbFunction)(u8*,u32,int,int);
|
||||||
|
int ifbType;
|
||||||
|
int filterType;
|
||||||
|
char pluginName[MAX_PATH];
|
||||||
|
int filterWidth;
|
||||||
|
int filterHeight;
|
||||||
|
int filterMagnification;
|
||||||
|
int filterLCD;
|
||||||
|
int fsWidth;
|
||||||
|
int fsHeight;
|
||||||
|
int fsColorDepth;
|
||||||
|
int fsFrequency;
|
||||||
|
int fsAdapter;
|
||||||
|
bool fsForceChange;
|
||||||
|
int sizeX;
|
||||||
|
int sizeY;
|
||||||
|
int surfaceSizeX;
|
||||||
|
int surfaceSizeY;
|
||||||
|
int videoOption;
|
||||||
|
bool fullScreenStretch;
|
||||||
|
bool disableStatusMessage;
|
||||||
|
int showSpeed;
|
||||||
|
BOOL showSpeedTransparent;
|
||||||
|
int showRenderedFrames;
|
||||||
|
bool screenMessage;
|
||||||
|
CString screenMessageBuffer;
|
||||||
|
DWORD screenMessageTime;
|
||||||
|
u8 *delta[257*244*4];
|
||||||
|
bool menuToggle;
|
||||||
|
IDisplay *display;
|
||||||
|
IMAGE_TYPE cartridgeType;
|
||||||
|
bool soundInitialized;
|
||||||
|
bool useBiosFileGBA;
|
||||||
|
bool useBiosFileGB;
|
||||||
|
bool skipBiosFile;
|
||||||
|
CString biosFileNameGBA;
|
||||||
|
CString biosFileNameGB;
|
||||||
|
bool active;
|
||||||
|
bool paused;
|
||||||
|
CString recentFiles[10];
|
||||||
|
bool recentFreeze;
|
||||||
|
bool autoSaveLoadCheatList;
|
||||||
|
FILE *winout;
|
||||||
|
bool removeIntros;
|
||||||
|
bool autoIPS;
|
||||||
|
int winGbBorderOn;
|
||||||
|
int winFlashSize;
|
||||||
|
bool winRtcEnable;
|
||||||
|
bool winGenericflashcardEnable;
|
||||||
|
int winSaveType;
|
||||||
|
char *rewindMemory;
|
||||||
|
int rewindPos;
|
||||||
|
int rewindTopPos;
|
||||||
|
int rewindCounter;
|
||||||
|
int rewindCount;
|
||||||
|
bool rewindSaveNeeded;
|
||||||
|
int rewindTimer;
|
||||||
|
int captureFormat;
|
||||||
|
bool tripleBuffering;
|
||||||
|
unsigned short throttle;
|
||||||
|
u32 autoFrameSkipLastTime;
|
||||||
|
bool autoFrameSkip;
|
||||||
|
bool vsync;
|
||||||
|
bool changingVideoSize;
|
||||||
|
DISPLAY_TYPE renderMethod;
|
||||||
|
AUDIO_API audioAPI;
|
||||||
|
#ifndef NO_OAL
|
||||||
|
TCHAR *oalDevice;
|
||||||
|
int oalBufferCount;
|
||||||
|
#endif
|
||||||
|
bool iconic;
|
||||||
|
#ifndef NO_D3D
|
||||||
|
int d3dFilter;
|
||||||
|
bool d3dMotionBlur;
|
||||||
|
#endif
|
||||||
|
int glFilter;
|
||||||
|
bool dinputKeyFocus;
|
||||||
|
bool pauseWhenInactive;
|
||||||
|
bool speedupToggle;
|
||||||
|
bool winGbPrinterEnabled;
|
||||||
|
int threadPriority;
|
||||||
|
bool disableMMX;
|
||||||
|
int languageOption;
|
||||||
|
CString languageName;
|
||||||
|
HMODULE languageModule;
|
||||||
|
int renderedFrames;
|
||||||
|
Input *input;
|
||||||
|
int joypadDefault;
|
||||||
|
int autoFire;
|
||||||
|
bool autoFireToggle;
|
||||||
|
bool winPauseNextFrame;
|
||||||
|
bool soundRecording;
|
||||||
|
WavWriter *soundRecorder;
|
||||||
|
CString soundRecordName;
|
||||||
|
bool dsoundDisableHardwareAcceleration;
|
||||||
|
ISound *sound;
|
||||||
|
bool aviRecording;
|
||||||
|
AVIWrite *aviRecorder;
|
||||||
|
CString aviRecordName;
|
||||||
|
bool painting;
|
||||||
|
unsigned int skipAudioFrames;
|
||||||
|
bool movieRecording;
|
||||||
|
bool moviePlaying;
|
||||||
|
int movieFrame;
|
||||||
|
int moviePlayFrame;
|
||||||
|
FILE *movieFile;
|
||||||
|
u32 movieLastJoypad;
|
||||||
|
u32 movieNextJoypad;
|
||||||
|
int sensorX;
|
||||||
|
int sensorY;
|
||||||
|
int mouseCounter;
|
||||||
|
bool wasPaused;
|
||||||
|
int frameskipadjust;
|
||||||
|
bool autoLoadMostRecent;
|
||||||
|
int fsMaxScale;
|
||||||
|
int romSize;
|
||||||
|
VIDEO_SIZE lastWindowed;
|
||||||
|
VIDEO_SIZE lastFullscreen;
|
||||||
|
|
||||||
|
CList<IUpdateListener *, IUpdateListener*&> updateList;
|
||||||
|
int updateCount;
|
||||||
|
|
||||||
|
CAcceleratorManager winAccelMgr;
|
||||||
|
HACCEL hAccel;
|
||||||
|
|
||||||
|
RECT rect;
|
||||||
|
RECT dest;
|
||||||
|
|
||||||
|
struct EmulatedSystem emulator;
|
||||||
|
|
||||||
|
CString szFile;
|
||||||
|
CString filename;
|
||||||
|
CString dir;
|
||||||
|
|
||||||
|
CString wndClass;
|
||||||
|
|
||||||
|
public:
|
||||||
|
VBA();
|
||||||
|
~VBA();
|
||||||
|
|
||||||
|
void adjustDestRect();
|
||||||
|
void updateIFB();
|
||||||
|
void updateFilter();
|
||||||
|
void updateThrottle( unsigned short throttle );
|
||||||
|
void updateMenuBar();
|
||||||
|
void winAddUpdateListener(IUpdateListener *l);
|
||||||
|
void winRemoveUpdateListener(IUpdateListener *l);
|
||||||
|
CString winLoadFilter(UINT id);
|
||||||
|
|
||||||
|
// Overrides
|
||||||
|
// ClassWizard generated virtual function overrides
|
||||||
|
//{{AFX_VIRTUAL(VBA)
|
||||||
|
public:
|
||||||
|
virtual BOOL InitInstance();
|
||||||
|
virtual BOOL OnIdle(LONG lCount);
|
||||||
|
//}}AFX_VIRTUAL
|
||||||
|
|
||||||
|
// Implementation
|
||||||
|
|
||||||
|
public:
|
||||||
|
void saveSettings();
|
||||||
|
void movieReadNext();
|
||||||
|
bool initInput();
|
||||||
|
HMODULE winLoadLanguage(const char *name);
|
||||||
|
void winSetLanguageOption(int option, bool force);
|
||||||
|
#ifdef MMX
|
||||||
|
bool detectMMX();
|
||||||
|
#endif
|
||||||
|
void updatePriority();
|
||||||
|
void directXMessage(const char *msg);
|
||||||
|
void shutdownDisplay();
|
||||||
|
bool preInitialize();
|
||||||
|
bool updateRenderMethod0(bool force);
|
||||||
|
bool updateRenderMethod(bool force);
|
||||||
|
bool initDisplay();
|
||||||
|
void updateWindowSize(int value);
|
||||||
|
void updateVideoSize(UINT id);
|
||||||
|
void updateFrameSkip();
|
||||||
|
void loadSettings();
|
||||||
|
void addRecentFile(CString file);
|
||||||
|
//{{AFX_MSG(VBA)
|
||||||
|
afx_msg void OnAppAbout();
|
||||||
|
// NOTE - the ClassWizard will add and remove member functions here.
|
||||||
|
// DO NOT EDIT what you see in these blocks of generated code !
|
||||||
|
//}}AFX_MSG
|
||||||
|
DECLARE_MESSAGE_MAP()
|
||||||
|
};
|
||||||
|
|
||||||
|
extern VBA theApp;
|
||||||
|
extern int emulating;
|
||||||
|
|
||||||
|
#ifdef MMX
|
||||||
|
extern "C" bool cpu_mmx;
|
||||||
|
#endif
|
Loading…
Reference in New Issue