vbagx/source/vbagx.h

143 lines
3.6 KiB
C
Raw Normal View History

/****************************************************************************
2008-09-17 04:27:55 +02:00
* Visual Boy Advance GX
*
2023-01-30 22:08:08 +01:00
* Tantric 2008-2023
*
2010-03-31 04:45:09 +02:00
* vbagx.h
*
* This file controls overall program flow. Most things start and end here!
***************************************************************************/
2008-12-18 19:58:30 +01:00
#ifndef _VBAGX_H_
#define _VBAGX_H_
#include <unistd.h>
#include <sys/param.h>
2009-04-08 09:08:12 +02:00
#include "filelist.h"
2010-03-22 00:49:59 +01:00
#include "utils/FreeTypeGX.h"
2009-04-08 09:08:12 +02:00
2008-12-24 08:52:35 +01:00
#define APPNAME "Visual Boy Advance GX"
2022-06-16 05:41:12 +02:00
#define APPVERSION "2.4.6"
2009-10-02 00:42:02 +02:00
#define APPFOLDER "vbagx"
#define PREF_FILE_NAME "settings.xml"
#define PAL_FILE_NAME "palettes.xml"
#define NOTSILENT 0
#define SILENT 1
2009-10-02 00:42:02 +02:00
const char pathPrefix[9][8] =
{ "", "sd:/", "usb:/", "dvd:/", "smb:/", "carda:/", "cardb:/", "port2:/" };
2009-10-02 00:42:02 +02:00
enum
{
2009-10-02 00:42:02 +02:00
DEVICE_AUTO,
DEVICE_SD,
DEVICE_USB,
DEVICE_DVD,
DEVICE_SMB,
DEVICE_SD_SLOTA,
DEVICE_SD_SLOTB,
DEVICE_SD_PORT2
};
enum
{
2008-11-12 08:53:25 +01:00
FILE_SRAM,
FILE_SNAPSHOT,
FILE_ROM,
FILE_BORDER_PNG
2008-11-12 08:53:25 +01:00
};
enum
{
2010-01-25 09:25:28 +01:00
LANG_JAPANESE = 0,
LANG_ENGLISH,
LANG_GERMAN,
LANG_FRENCH,
LANG_SPANISH,
LANG_ITALIAN,
LANG_DUTCH,
LANG_SIMP_CHINESE,
LANG_TRAD_CHINESE,
LANG_KOREAN,
2010-08-29 23:43:05 +02:00
LANG_PORTUGUESE,
LANG_BRAZILIAN_PORTUGUESE,
2010-11-27 03:46:41 +01:00
LANG_CATALAN,
2011-03-30 05:39:23 +02:00
LANG_TURKISH,
2010-08-29 23:43:05 +02:00
LANG_LENGTH
2010-01-25 09:25:28 +01:00
};
struct SGCSettings
{
2010-01-25 08:36:48 +01:00
float gbaZoomHor; // GBA horizontal zoom amount
float gbaZoomVert; // GBA vertical zoom amount
float gbZoomHor; // GB horizontal zoom amount
float gbZoomVert; // GB vertical zoom amount
int gbFixed;
int gbaFixed;
2010-01-25 08:36:48 +01:00
int AutoLoad;
int AutoSave;
int LoadMethod; // For ROMS: Auto, SD, DVD, USB, Network (SMB)
2010-01-25 08:36:48 +01:00
int SaveMethod; // For SRAM, Freeze, Prefs: Auto, SD, USB, SMB
int AppendAuto; // 0 - no, 1 - yes
int videomode; // 0 - automatic, 1 - NTSC (480i), 2 - Progressive (480p), 3 - PAL (50Hz), 4 - PAL (60Hz)
int scaling; // 0 - default, 1 - partial stretch, 2 - stretch to fit, 3 - widescreen correction
2010-01-25 08:36:48 +01:00
int render; // 0 - original, 1 - filtered, 2 - unfiltered
int xshift; // video output shift
2009-01-26 08:11:02 +01:00
int yshift;
int colorize; // colorize Mono Gameboy games
int gbaFrameskip; // turn on auto-frameskip for GBA games
2010-01-25 08:36:48 +01:00
int WiiControls; // Match Wii Game
int WiimoteOrientation;
2009-04-08 09:08:12 +02:00
int ExitAction;
int MusicVolume;
int SFXVolume;
int Rumble;
2010-01-25 09:25:28 +01:00
int language;
int PreviewImage;
int TurboModeEnabled; // 0 - disabled, 1 - enabled
int AutoloadGame;
int OffsetMinutesUTC; // Used for clock on MBC3 and TAMA5
int GBHardware; // Mapped to gbEmulatorType in VBA
int SGBBorder;
int BasicPalette; // 0 - Green 1 - Monochrome
2010-01-25 08:36:48 +01:00
char LoadFolder[MAXPATHLEN]; // Path to game files
char LastFileLoaded[MAXPATHLEN]; //Last file loaded filename
2010-01-25 08:36:48 +01:00
char SaveFolder[MAXPATHLEN]; // Path to save files
char ScreenshotsFolder[MAXPATHLEN]; //Path to screenshots files
char CoverFolder[MAXPATHLEN]; //Path to cover files
char ArtworkFolder[MAXPATHLEN]; //Path to artwork files
char BorderFolder[MAXPATHLEN]; // Path to Super Game Boy border files
2010-01-25 08:36:48 +01:00
char smbip[80];
char smbuser[20];
char smbpwd[20];
char smbshare[20];
};
2009-04-08 09:08:12 +02:00
void ExitApp();
void ShutdownWii();
bool SupportedIOS(u32 ios);
bool SaneIOS(u32 ios);
extern struct SGCSettings GCSettings;
extern int ScreenshotRequested;
2008-10-18 22:40:48 +02:00
extern int ConfigRequested;
extern int ShutdownRequested;
2009-04-08 09:08:12 +02:00
extern int ExitRequested;
extern char appPath[];
extern FreeTypeGX *fontSystem[];
2020-06-02 05:18:47 +02:00
extern bool isWiiVC;
static inline bool IsWiiU(void)
{
return ((*(vu16*)0xCD8005A0 == 0xCAFE) || isWiiVC);
}
static inline bool IsWiiUFastCPU(void)
{
return ((*(vu16*)0xCD8005A0 == 0xCAFE) && ((*(vu32*)0xCD8005B0 & 0x20) == 0));
}
#endif