snes9xgx/source/ngc/s9xconfig.cpp

161 lines
5.1 KiB
C++
Raw Normal View History

/****************************************************************************
* Snes9x 1.51 Nintendo Wii/Gamecube Port
*
* softdev July 2006
* crunchy2 May 2007
2008-09-23 06:13:33 +02:00
* Michniewski 2008
2009-03-17 06:09:45 +01:00
* Tantric 2008-2009
*
* s9xconfig.cpp
*
2008-09-11 06:41:58 +02:00
* Configuration parameters are here for easy maintenance.
* Refer to Snes9x.h for all combinations.
* The defaults used here are taken directly from porting.html
***************************************************************************/
#include <gccore.h>
#include "snes9x.h"
#include "snes9xGX.h"
#include "input.h"
#include "filter.h"
2008-08-12 05:25:16 +02:00
struct SGCSettings GCSettings;
2009-03-17 06:09:45 +01:00
/****************************************************************************
2009-03-28 20:03:35 +01:00
* FixInvalidSettings
*
2009-03-17 06:09:45 +01:00
* Attempts to correct at least some invalid settings - the ones that
* might cause crashes
***************************************************************************/
void FixInvalidSettings()
{
if(!(GCSettings.ZoomLevel > 0.5 && GCSettings.ZoomLevel < 1.5))
GCSettings.ZoomLevel = 1.0;
if(!(GCSettings.xshift > -50 && GCSettings.xshift < 50))
GCSettings.xshift = 0;
if(!(GCSettings.yshift > -50 && GCSettings.yshift < 50))
GCSettings.yshift = 0;
if(!(GCSettings.MusicVolume >= 0 && GCSettings.MusicVolume <= 100))
GCSettings.MusicVolume = 40;
if(!(GCSettings.SFXVolume >= 0 && GCSettings.SFXVolume <= 100))
GCSettings.SFXVolume = 40;
2009-03-28 20:03:35 +01:00
if(GCSettings.Controller > CTRL_PAD4 || GCSettings.Controller < CTRL_MOUSE)
GCSettings.Controller = CTRL_PAD2;
2009-03-30 10:16:41 +02:00
if(!(GCSettings.render >= 0 && GCSettings.render < 3))
GCSettings.render = 2;
if(!(GCSettings.videomode >= 0 && GCSettings.videomode < 5))
GCSettings.videomode = 0;
2009-03-17 06:09:45 +01:00
}
2009-03-28 20:03:35 +01:00
/****************************************************************************
* DefaultSettings
*
* Sets all the defaults!
***************************************************************************/
void
DefaultSettings ()
{
/************** GameCube/Wii Settings *********************/
ResetControls(); // controller button mappings
2009-10-02 00:35:12 +02:00
GCSettings.LoadMethod = DEVICE_AUTO; // Auto, SD, DVD, USB, Network (SMB)
GCSettings.SaveMethod = DEVICE_AUTO; // Auto, SD, Memory Card Slot A, Memory Card Slot B, USB, Network (SMB)
2008-08-12 05:25:16 +02:00
sprintf (GCSettings.LoadFolder,"snes9x/roms"); // Path to game files
sprintf (GCSettings.SaveFolder,"snes9x/saves"); // Path to save files
2008-08-12 05:25:16 +02:00
sprintf (GCSettings.CheatFolder,"snes9x/cheats"); // Path to cheat files
GCSettings.AutoLoad = 1;
GCSettings.AutoSave = 1;
GCSettings.VerifySaves = 0;
2008-09-08 01:50:57 +02:00
// custom SMB settings
strncpy (GCSettings.smbip, "", 15); // IP Address of share server
strncpy (GCSettings.smbuser, "", 19); // Your share user
strncpy (GCSettings.smbpwd, "", 19); // Your share user password
strncpy (GCSettings.smbshare, "", 19); // Share name on server
GCSettings.smbip[15] = 0;
GCSettings.smbuser[19] = 0;
GCSettings.smbpwd[19] = 0;
GCSettings.smbshare[19] = 0;
2008-08-20 09:58:55 +02:00
2009-03-28 20:03:35 +01:00
GCSettings.Controller = CTRL_PAD2;
GCSettings.videomode = 0; // automatic video mode detection
2008-10-24 07:11:01 +02:00
GCSettings.ZoomLevel = 1.0; // zoom level
GCSettings.render = 2; // Unfiltered
GCSettings.widescreen = 0; // no aspect ratio correction
GCSettings.FilterMethod = FILTER_NONE; // no hq2x
2009-03-28 20:03:35 +01:00
GCSettings.xshift = 0; // horizontal video shift
GCSettings.yshift = 0; // vertical video shift
2009-03-11 18:28:37 +01:00
GCSettings.WiimoteOrientation = 0;
GCSettings.ExitAction = 0;
GCSettings.MusicVolume = 40;
GCSettings.SFXVolume = 40;
GCSettings.Rumble = 1;
2009-03-11 18:28:37 +01:00
/****************** SNES9x Settings ***********************/
2008-09-10 07:57:37 +02:00
// Default ALL to false
memset (&Settings, 0, sizeof (Settings));
2008-09-10 07:57:37 +02:00
// General
Settings.MouseMaster = false;
Settings.SuperScopeMaster = false;
Settings.MultiPlayer5Master = false;
Settings.JustifierMaster = false;
Settings.ShutdownMaster = true; // needs to be on for ActRaiser 2
Settings.ApplyCheats = true;
Settings.BlockInvalidVRAMAccess = false;
2008-09-10 07:57:37 +02:00
Settings.HDMATimingHack = 100;
2008-09-10 07:57:37 +02:00
// Sound defaults. On GC this is 32Khz/16bit/Stereo/InterpolatedSound
Settings.APUEnabled = true;
Settings.NextAPUEnabled = true;
Settings.SoundPlaybackRate = 32000;
Settings.Stereo = true;
Settings.SixteenBitSound = true;
Settings.SoundEnvelopeHeightReading = true;
2008-10-04 00:39:14 +02:00
Settings.SoundSync = true;
Settings.FixFrequency = false;
Settings.DisableSampleCaching = true;
Settings.InterpolatedSound = true;
2008-10-19 19:59:00 +02:00
Settings.ReverseStereo = true;
2008-09-10 07:57:37 +02:00
// Graphics
Settings.Transparency = true;
Settings.SupportHiRes = true;
2008-10-14 11:21:34 +02:00
Settings.SkipFrames = AUTO_FRAMERATE;
Settings.TurboSkipFrames = 19;
Settings.DisplayFrameRate = false;
2008-10-04 00:39:14 +02:00
Settings.AutoDisplayMessages = 0;
Settings.InitialInfoStringTimeout = 200; // # frames to display messages for
2008-09-10 07:57:37 +02:00
// Frame timings in 50hz and 60hz cpu mode
Settings.FrameTimePAL = 20000;
Settings.FrameTimeNTSC = 16667;
2008-09-10 07:57:37 +02:00
// SDD1 - Star Ocean Returns
Settings.SDD1Pack = true;
Settings.ForceNTSC = 0;
Settings.ForcePAL = 0;
Settings.ForceHiROM = 0;
Settings.ForceLoROM = 0;
Settings.ForceHeader = 0;
Settings.ForceNoHeader = 0;
Settings.ForceTransparency = 0;
Settings.ForceInterleaved = 0;
Settings.ForceInterleaved2 = 0;
Settings.ForceInterleaveGD24 = 0;
Settings.ForceNotInterleaved = 0;
Settings.ForceNoSuperFX = 0;
Settings.ForceSuperFX = 0;
Settings.ForceDSP1 = 0;
Settings.ForceNoDSP1 = 0;
}