2010-03-22 00:45:09 +01:00
|
|
|
/****************************************************************************
|
|
|
|
* Snes9x Nintendo Wii/Gamecube Port
|
|
|
|
*
|
|
|
|
* softdev July 2006
|
|
|
|
* crunchy2 May 2007-July 2007
|
|
|
|
* Michniewski 2008
|
2023-01-30 22:07:14 +01:00
|
|
|
* Tantric 2008-2023
|
2010-03-22 00:45:09 +01:00
|
|
|
*
|
2010-03-31 04:54:24 +02:00
|
|
|
* snes9xgx.h
|
2010-03-22 00:45:09 +01:00
|
|
|
*
|
|
|
|
* This file controls overall program flow. Most things start and end here!
|
|
|
|
***************************************************************************/
|
|
|
|
|
|
|
|
#ifndef _SNES9XGX_H_
|
|
|
|
#define _SNES9XGX_H_
|
|
|
|
|
|
|
|
#include "utils/FreeTypeGX.h"
|
|
|
|
#include "snes9x.h"
|
|
|
|
#include "filter.h"
|
|
|
|
#include "filelist.h"
|
|
|
|
|
2016-03-12 21:58:51 +01:00
|
|
|
#define APPNAME "Snes9x GX"
|
2022-06-16 05:50:24 +02:00
|
|
|
#define APPVERSION "4.5.3"
|
2016-03-12 21:58:51 +01:00
|
|
|
#define APPFOLDER "snes9xgx"
|
2016-12-09 01:51:57 +01:00
|
|
|
#define PREF_FILE_NAME "settings.xml"
|
2010-03-22 00:45:09 +01:00
|
|
|
|
2018-08-01 20:44:21 +02:00
|
|
|
#define MAXPATHLEN 1024
|
2010-03-22 00:45:09 +01:00
|
|
|
#define NOTSILENT 0
|
|
|
|
#define SILENT 1
|
|
|
|
|
|
|
|
const char pathPrefix[9][8] =
|
2019-12-24 06:30:59 +01:00
|
|
|
{ "", "sd:/", "usb:/", "dvd:/", "smb:/", "carda:/", "cardb:/", "port2:/" };
|
2010-03-22 00:45:09 +01:00
|
|
|
|
|
|
|
enum {
|
|
|
|
DEVICE_AUTO,
|
|
|
|
DEVICE_SD,
|
|
|
|
DEVICE_USB,
|
|
|
|
DEVICE_DVD,
|
|
|
|
DEVICE_SMB,
|
|
|
|
DEVICE_SD_SLOTA,
|
2019-12-24 06:30:59 +01:00
|
|
|
DEVICE_SD_SLOTB,
|
|
|
|
DEVICE_SD_PORT2
|
2010-03-22 00:45:09 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
enum {
|
|
|
|
FILE_SRAM,
|
|
|
|
FILE_SNAPSHOT,
|
|
|
|
FILE_ROM,
|
|
|
|
FILE_CHEAT
|
|
|
|
};
|
|
|
|
|
|
|
|
enum
|
|
|
|
{
|
|
|
|
CTRL_PAD,
|
|
|
|
CTRL_SCOPE,
|
|
|
|
CTRL_JUST,
|
2022-10-20 01:34:04 +02:00
|
|
|
CTRL_MOUSE,
|
|
|
|
CTRL_MOUSE_PORT2,
|
|
|
|
CTRL_MOUSE_BOTH_PORTS,
|
2010-03-22 00:45:09 +01:00
|
|
|
CTRL_PAD2,
|
|
|
|
CTRL_PAD4,
|
|
|
|
CTRL_LENGTH
|
|
|
|
};
|
|
|
|
|
2022-10-20 01:34:04 +02:00
|
|
|
const char ctrlName[8][24] =
|
|
|
|
{
|
|
|
|
"SNES Controller",
|
|
|
|
"Super Scope",
|
|
|
|
"Justifier",
|
|
|
|
"SNES Mouse (Port 1)",
|
|
|
|
"SNES Mouse (Port 2)",
|
|
|
|
"SNES Mouse (Both Ports)",
|
|
|
|
"SNES Controllers (2)",
|
|
|
|
"SNES Controllers (4)"
|
|
|
|
};
|
2010-03-22 00:45:09 +01:00
|
|
|
|
2022-05-20 23:54:29 +02: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,
|
|
|
|
};
|
|
|
|
|
2010-03-22 00:45:09 +01:00
|
|
|
enum {
|
|
|
|
LANG_JAPANESE = 0,
|
|
|
|
LANG_ENGLISH,
|
|
|
|
LANG_GERMAN,
|
|
|
|
LANG_FRENCH,
|
|
|
|
LANG_SPANISH,
|
|
|
|
LANG_ITALIAN,
|
|
|
|
LANG_DUTCH,
|
|
|
|
LANG_SIMP_CHINESE,
|
|
|
|
LANG_TRAD_CHINESE,
|
2010-08-21 22:06:36 +02:00
|
|
|
LANG_KOREAN,
|
2010-08-29 23:43:32 +02:00
|
|
|
LANG_PORTUGUESE,
|
|
|
|
LANG_BRAZILIAN_PORTUGUESE,
|
2010-11-27 03:46:27 +01:00
|
|
|
LANG_CATALAN,
|
2011-03-30 05:41:39 +02:00
|
|
|
LANG_TURKISH,
|
2010-08-29 23:43:32 +02:00
|
|
|
LANG_LENGTH
|
2010-03-22 00:45:09 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
struct SGCSettings{
|
2016-02-08 04:35:16 +01:00
|
|
|
int AutoLoad;
|
|
|
|
int AutoSave;
|
|
|
|
int LoadMethod; // For ROMS: Auto, SD, DVD, USB, Network (SMB)
|
2010-03-22 00:45:09 +01:00
|
|
|
int SaveMethod; // For SRAM, Freeze, Prefs: Auto, SD, USB, SMB
|
2019-01-30 04:31:25 +01:00
|
|
|
int AppendAuto; // 0 - no, 1 - yes
|
2016-12-09 01:51:57 +01:00
|
|
|
char LoadFolder[MAXPATHLEN]; // Path to game files
|
2018-08-30 18:11:24 +02:00
|
|
|
char LastFileLoaded[MAXPATHLEN]; // Last file loaded filename
|
2016-12-09 01:51:57 +01:00
|
|
|
char SaveFolder[MAXPATHLEN]; // Path to save files
|
|
|
|
char CheatFolder[MAXPATHLEN]; // Path to cheat files
|
2018-08-30 18:11:24 +02:00
|
|
|
char ScreenshotsFolder[MAXPATHLEN]; // Path to screenshots files
|
|
|
|
char CoverFolder[MAXPATHLEN]; // Path to cover files
|
|
|
|
char ArtworkFolder[MAXPATHLEN]; // Path to artwork files
|
2022-06-03 21:50:37 +02:00
|
|
|
int HideSRAMSaving;
|
2018-08-30 18:11:24 +02:00
|
|
|
int AutoloadGame;
|
2016-02-06 22:40:46 +01:00
|
|
|
|
2010-03-22 00:45:09 +01:00
|
|
|
char smbip[80];
|
|
|
|
char smbuser[20];
|
|
|
|
char smbpwd[20];
|
|
|
|
char smbshare[20];
|
|
|
|
|
|
|
|
float zoomHor; // horizontal zoom amount
|
|
|
|
float zoomVert; // vertical zoom amount
|
2023-01-24 23:29:08 +01:00
|
|
|
int videomode; // 0 - automatic, 1 - NTSC (480i), 2 - Progressive (480p), 3 - Progressive (576p), 4 - PAL (50Hz), 5 - PAL (60Hz)
|
2010-03-22 00:45:09 +01:00
|
|
|
int render; // 0 - original, 1 - filtered, 2 - unfiltered
|
|
|
|
int FilterMethod; // convert to RenderFilter
|
|
|
|
int Controller;
|
2022-06-29 05:54:05 +02:00
|
|
|
int HiResolution;
|
|
|
|
int SpriteLimit;
|
2023-01-24 23:29:08 +01:00
|
|
|
int FrameSkip;
|
2010-03-22 00:45:09 +01:00
|
|
|
int crosshair;
|
|
|
|
int widescreen; // 0 - 4:3 aspect, 1 - 16:9 aspect
|
|
|
|
int xshift; // video output shift
|
|
|
|
int yshift;
|
|
|
|
int WiimoteOrientation;
|
|
|
|
int ExitAction;
|
|
|
|
int MusicVolume;
|
|
|
|
int SFXVolume;
|
|
|
|
int Rumble;
|
2016-03-12 21:58:51 +01:00
|
|
|
int language;
|
2016-12-09 01:51:57 +01:00
|
|
|
int PreviewImage;
|
2016-03-12 21:58:51 +01:00
|
|
|
|
2018-08-16 16:41:30 +02:00
|
|
|
int sfxOverclock;
|
2018-12-23 18:14:30 +01:00
|
|
|
|
|
|
|
int Interpolation;
|
2022-10-22 23:42:09 +02:00
|
|
|
int MuteAudio;
|
2022-05-12 20:55:46 +02:00
|
|
|
|
|
|
|
int TurboModeEnabled; // 0 - disabled, 1 - enabled
|
2022-05-20 23:54:29 +02:00
|
|
|
int TurboModeButton;
|
2022-10-10 03:46:32 +02:00
|
|
|
int GamepadMenuToggle;
|
|
|
|
int MapABXYRightStick;
|
2010-03-22 00:45:09 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
void ExitApp();
|
|
|
|
void ShutdownWii();
|
2010-12-18 17:04:50 +01:00
|
|
|
bool SupportedIOS(u32 ios);
|
|
|
|
bool SaneIOS(u32 ios);
|
2010-03-22 00:45:09 +01:00
|
|
|
extern struct SGCSettings GCSettings;
|
|
|
|
extern int ScreenshotRequested;
|
|
|
|
extern int ConfigRequested;
|
|
|
|
extern int ShutdownRequested;
|
|
|
|
extern int ExitRequested;
|
|
|
|
extern char appPath[];
|
|
|
|
extern FreeTypeGX *fontSystem[];
|
2020-06-02 05:16:28 +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));
|
|
|
|
}
|
2010-03-22 00:45:09 +01:00
|
|
|
#endif
|