fceugx/source/fceugx.h

174 lines
3.8 KiB
C
Raw Normal View History

/****************************************************************************
2009-07-22 02:05:49 +00:00
* FCE Ultra
* Nintendo Wii/Gamecube Port
*
2023-01-30 22:07:47 +01:00
* Tantric 2008-2023
*
* fceugx.h
*
* This file controls overall program flow. Most things start and end here!
****************************************************************************/
#ifndef _FCEUGX_H_
#define _FCEUGX_H_
#include <unistd.h>
2010-03-21 23:49:24 +00:00
#include "fceultra/driver.h"
2009-07-17 17:27:04 +00:00
2008-12-24 07:58:23 +00:00
#define APPNAME "FCE Ultra GX"
2024-03-30 10:21:55 -06:00
#define APPVERSION "3.5.4"
2009-10-01 22:21:25 +00:00
#define APPFOLDER "fceugx"
2008-12-24 07:58:23 +00:00
#define PREF_FILE_NAME "settings.xml"
#define MAXPATHLEN 1024
#define NOTSILENT 0
#define SILENT 1
2009-10-01 22:21:25 +00:00
const char pathPrefix[9][8] =
{ "", "sd:/", "usb:/", "dvd:/", "smb:/", "carda:/", "cardb:/", "port2:/" };
2009-10-01 22:21:25 +00:00
2016-09-17 20:43:24 -07:00
enum
{
2009-10-01 22:21:25 +00:00
DEVICE_AUTO,
DEVICE_SD,
DEVICE_USB,
DEVICE_DVD,
DEVICE_SMB,
DEVICE_SD_SLOTA,
DEVICE_SD_SLOTB,
DEVICE_SD_PORT2
};
2016-09-17 20:43:24 -07:00
enum
{
FILE_RAM,
FILE_STATE,
FILE_ROM,
2009-10-01 22:21:25 +00:00
FILE_CHEAT
};
2009-03-28 17:23:08 +00:00
enum
{
CTRL_PAD,
CTRL_ZAPPER,
CTRL_PAD2,
CTRL_PAD4,
CTRL_LENGTH
};
const char ctrlName[6][20] =
{ "NES Controller", "NES Zapper", "NES Controllers (2)", "NES Controllers (4)" };
2016-09-17 20:43:24 -07:00
enum
{
2010-01-25 08:23:03 +00: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 21:44:03 +00:00
LANG_PORTUGUESE,
LANG_BRAZILIAN_PORTUGUESE,
2010-11-27 02:46:04 +00:00
LANG_CATALAN,
2011-03-30 03:43:03 +00:00
LANG_TURKISH,
LANG_SWEDISH,
2010-08-29 21:44:03 +00:00
LANG_LENGTH
2010-01-25 08:23:03 +00:00
};
enum {
TURBO_BUTTON_RSTICK = 0,
TURBO_BUTTON_A,
TURBO_BUTTON_B,
TURBO_BUTTON_X,
TURBO_BUTTON_Y,
TURBO_BUTTON_L,
TURBO_BUTTON_R,
TURBO_BUTTON_ZL,
TURBO_BUTTON_ZR,
TURBO_BUTTON_Z,
TURBO_BUTTON_C,
TURBO_BUTTON_1,
TURBO_BUTTON_2,
TURBO_BUTTON_PLUS,
TURBO_BUTTON_MINUS,
};
2016-09-17 20:43:24 -07:00
struct SGCSettings
{
int AutoLoad;
2016-12-10 12:37:33 -07:00
int AutoSave;
int LoadMethod; // For ROMS: Auto, SD, DVD, USB, Network (SMB)
2009-12-02 06:42:30 +00:00
int SaveMethod; // For SRAM, Freeze, Prefs: Auto, SD, USB, SMB
int AppendAuto; // 0 - no, 1 - yes
2009-07-08 05:57:43 +00:00
char LoadFolder[MAXPATHLEN]; // Path to game files
2014-10-24 02:51:36 +00:00
char LastFileLoaded[MAXPATHLEN]; //Last file loaded filename
2009-07-08 05:57:43 +00:00
char SaveFolder[MAXPATHLEN]; // Path to save files
char CheatFolder[MAXPATHLEN]; // Path to cheat files
char ScreenshotsFolder[MAXPATHLEN]; // Path to screenshot files
2019-01-05 10:54:09 +01:00
char CoverFolder[MAXPATHLEN]; // Path to cover files
char ArtworkFolder[MAXPATHLEN]; // Path to artwork files
int AutoloadGame;
2016-12-10 12:37:33 -07:00
2009-12-23 22:55:25 +00:00
char smbip[80];
char smbuser[20];
char smbpwd[20];
char smbshare[20];
2009-11-16 08:14:38 +00:00
float zoomHor; // horizontal zoom amount
float zoomVert; // vertical zoom amount
int render; // 0 - original, 1 - filtered, 2 - unfiltered
int videomode; // 0 - automatic, 1 - NTSC (480i), 2 - Progressive (480p), 3 - PAL (50Hz), 4 - PAL (60Hz)
int widescreen;
2019-01-05 11:07:13 -07:00
int hideoverscan; // 0 = off, 1 = vertical, 2 = horizontal, 3 = both
2009-10-07 06:59:10 +00:00
int gamegenie;
int currpal;
int timing;
2009-03-28 17:23:08 +00:00
int Controller;
int crosshair;
int spritelimit;
2009-01-26 07:10:20 +00:00
int xshift; // video output shift
int yshift;
2009-03-28 17:23:08 +00:00
int WiimoteOrientation;
int ExitAction;
int MusicVolume;
int SFXVolume;
int Rumble;
2010-01-25 08:23:03 +00:00
int language;
2019-01-05 10:54:09 +01:00
int PreviewImage;
int HideRAMSaving;
int TurboModeEnabled; // 0 - disabled, 1 - enabled
int TurboModeButton;
int GamepadMenuToggle;
};
2009-03-28 17:23:08 +00:00
void ExitApp();
void ShutdownWii();
bool SupportedIOS(u32 ios);
bool SaneIOS(u32 ios);
extern struct SGCSettings GCSettings;
extern int ScreenshotRequested;
extern int ConfigRequested;
extern int ShutdownRequested;
2009-03-28 17:23:08 +00:00
extern int ExitRequested;
extern char appPath[];
extern int frameskip;
2012-07-07 17:45:30 +00:00
extern int fskip;
extern int fskipc;
extern int turbomode;
2009-07-17 17:27:04 +00:00
extern bool romLoaded;
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