Trying to make gameini support some gl options

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2687 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
nakeee 2009-03-20 11:51:22 +00:00
parent eff7b1aa14
commit f22af37320
13 changed files with 85 additions and 26 deletions

View File

@ -171,6 +171,27 @@ std::string* IniFile::GetLine(Section* section, const char* key, std::string* va
return 0; return 0;
} }
bool IniFile::Exists(const char* sectionName, const char* key)
{
const Section* section = GetSection(sectionName);
if (!section)
return false;
for (std::vector<std::string>::const_iterator iter = section->lines.begin(); iter != section->lines.end(); ++iter)
{
std::string lineKey;
ParseLine(*iter, &lineKey, NULL, NULL);
if (!strcasecmp(lineKey.c_str(), key))
{
return true;
}
}
return false;
}
void IniFile::SetLines(const char* sectionName, const std::vector<std::string> &lines) void IniFile::SetLines(const char* sectionName, const std::vector<std::string> &lines)
{ {
Section* section = GetOrCreateSection(sectionName); Section* section = GetOrCreateSection(sectionName);

View File

@ -57,6 +57,9 @@ public:
void SetLines(const char* sectionName, const std::vector<std::string> &lines); void SetLines(const char* sectionName, const std::vector<std::string> &lines);
// Returns true if exists key in section
bool Exists(const char* sectionName, const char* key);
// getter should be const // getter should be const
bool Get(const char* sectionName, const char* key, std::string* value, const char* defaultValue = ""); bool Get(const char* sectionName, const char* key, std::string* value, const char* defaultValue = "");
bool Get(const char* sectionName, const char* key, int* value, int defaultValue = 0); bool Get(const char* sectionName, const char* key, int* value, int defaultValue = 0);

View File

@ -15,8 +15,8 @@
// Official SVN repository and contact information can be found at // Official SVN repository and contact information can be found at
// http://code.google.com/p/dolphin-emu/ // http://code.google.com/p/dolphin-emu/
#ifndef _CONFIG_H #ifndef _CONFIGMANAGER_H
#define _CONFIG_H #define _CONFIGMANAGER_H
#include <string> #include <string>
#include <vector> #include <vector>
@ -88,4 +88,4 @@ struct SConfig
static SConfig m_Instance; static SConfig m_Instance;
}; };
#endif #endif // endif config manager

View File

@ -45,6 +45,8 @@ void SCoreStartupParameter::LoadDefaults()
bWii = false; bWii = false;
SelectedLanguage = 0; SelectedLanguage = 0;
iTLBHack = 0; iTLBHack = 0;
delete gameIni;
gameIni = NULL;
bJITOff = false; // debugger only settings bJITOff = false; // debugger only settings
bJITLoadStoreOff = false; bJITLoadStoreOff = false;

View File

@ -22,6 +22,7 @@
#include <windows.h> #include <windows.h>
#endif #endif
#include "IniFile.h"
#include <string> #include <string>
#define MAXPADS 4 #define MAXPADS 4
@ -36,6 +37,9 @@ struct SCoreStartupParameter
// Windows/GUI related // Windows/GUI related
void* hMainWindow; void* hMainWindow;
// game ini
IniFile *gameIni;
// Settings // Settings
bool bEnableDebugging; bool bAutomaticStart; bool bBootToPause; bool bEnableDebugging; bool bAutomaticStart; bool bBootToPause;
bool bUseJIT; bool bUseJIT;

View File

@ -122,17 +122,19 @@ bool BootCore(const std::string& _rFilename)
// ==================================================== // ====================================================
// Load game specific settings // Load game specific settings
// ---------------- // ----------------
IniFile ini; // Released when you LoadDefaults
IniFile *ini = new IniFile();
std::string unique_id = StartUp.GetUniqueID(); std::string unique_id = StartUp.GetUniqueID();
if (unique_id.size() == 6 && ini.Load((FULL_GAMECONFIG_DIR + unique_id + ".ini").c_str())) if (unique_id.size() == 6 && ini->Load((FULL_GAMECONFIG_DIR + unique_id + ".ini").c_str()))
{ {
StartUp.gameIni = ini;
// ------------------------------------------------ // ------------------------------------------------
// General settings // General settings
// ---------------- // ----------------
ini.Get("Core", "UseDualCore", &StartUp.bUseDualCore, StartUp.bUseDualCore); ini->Get("Core", "UseDualCore", &StartUp.bUseDualCore, StartUp.bUseDualCore);
ini.Get("Core", "SkipIdle", &StartUp.bSkipIdle, StartUp.bSkipIdle); ini->Get("Core", "SkipIdle", &StartUp.bSkipIdle, StartUp.bSkipIdle);
ini.Get("Core", "OptimizeQuantizers", &StartUp.bOptimizeQuantizers, StartUp.bOptimizeQuantizers); ini->Get("Core", "OptimizeQuantizers", &StartUp.bOptimizeQuantizers, StartUp.bOptimizeQuantizers);
ini.Get("Core", "TLBHack", &StartUp.iTLBHack, StartUp.iTLBHack); ini->Get("Core", "TLBHack", &StartUp.iTLBHack, StartUp.iTLBHack);
// ------------------------------------------------ // ------------------------------------------------
// Wii settings // Wii settings
@ -144,8 +146,8 @@ bool BootCore(const std::string& _rFilename)
u16 IPL_PGS = 0x17CC; // progressive scan u16 IPL_PGS = 0x17CC; // progressive scan
u16 IPL_AR = 0x04D9; // widescreen u16 IPL_AR = 0x04D9; // widescreen
ini.Get("Wii", "ProgressiveScan", &StartUp.bProgressiveScan, StartUp.bProgressiveScan); ini->Get("Wii", "ProgressiveScan", &StartUp.bProgressiveScan, StartUp.bProgressiveScan);
ini.Get("Wii", "Widescreen", &StartUp.bWidescreen, StartUp.bWidescreen); ini->Get("Wii", "Widescreen", &StartUp.bWidescreen, StartUp.bWidescreen);
// Save the update Wii SYSCONF settings // Save the update Wii SYSCONF settings
pStream = NULL; pStream = NULL;
@ -164,6 +166,9 @@ bool BootCore(const std::string& _rFilename)
} }
} }
// --------------- // ---------------
} else {
delete ini;
ini = NULL;
} }
// ===================== // =====================

View File

@ -15,8 +15,8 @@
// Official SVN repository and contact information can be found at // Official SVN repository and contact information can be found at
// http://code.google.com/p/dolphin-emu/ // http://code.google.com/p/dolphin-emu/
#ifndef _CONFIG_H #ifndef _PLUGIN_DSP_HLE_CONFIG_H
#define _CONFIG_H #define _PLUGIN_DSP_HLE_CONFIG_H
#include <string> #include <string>
@ -36,5 +36,5 @@ struct CConfig
extern CConfig g_Config; extern CConfig g_Config;
#endif #endif // _PLUGIN_DSP_HLE_CONFIG_H

View File

@ -19,6 +19,7 @@
#include "Common.h" #include "Common.h"
#include "IniFile.h" #include "IniFile.h"
#include "Config.h" #include "Config.h"
#include "ConfigManager.h"
Config g_Config; Config g_Config;
@ -79,6 +80,27 @@ void Config::Load()
iniFile.Get("Hacks", "EFBToTextureEnable", &bCopyEFBToRAM, 0); iniFile.Get("Hacks", "EFBToTextureEnable", &bCopyEFBToRAM, 0);
} }
void Config::GameIniLoad() {
IniFile *iniFile = ((struct SConfig *)globals->config)->m_LocalCoreStartupParameter.gameIni;
if (iniFile->Exists("Video", "ForceFiltering"))
iniFile->Get("Video", "ForceFiltering", &bForceFiltering, 0);
if (iniFile->Exists("Video", "MaxAnisotropy"))
iniFile->Get("Video", "MaxAnisotropy", &iMaxAnisotropy, 3); // NOTE - this is x in (1 << x)
if (iniFile->Exists("Video", "EFBCopyDisable"))
iniFile->Get("Video", "EFBCopyDisable", &bEFBCopyDisable, 0);
if (iniFile->Exists("Video", "EFBCopyDisableHotKey"))
iniFile->Get("Video", "EFBCopyDisableHotKey", &bEFBCopyDisableHotKey, 0);
if (iniFile->Exists("Video", "ProjectionHax1"))
iniFile->Get("Video", "ProjectionHax1", &bProjectionHax1, 0);
if (iniFile->Exists("Video", "EFBToTextureEnable"))
iniFile->Get("Video", "EFBToTextureEnable", &bCopyEFBToRAM, 0);
}
void Config::Save() void Config::Save()
{ {
IniFile iniFile; IniFile iniFile;
@ -125,3 +147,4 @@ void Config::Save()
iniFile.Save(FULL_CONFIG_DIR "gfx_opengl.ini"); iniFile.Save(FULL_CONFIG_DIR "gfx_opengl.ini");
} }

View File

@ -15,8 +15,8 @@
// Official SVN repository and contact information can be found at // Official SVN repository and contact information can be found at
// http://code.google.com/p/dolphin-emu/ // http://code.google.com/p/dolphin-emu/
#ifndef _CONFIG_H #ifndef _PLUGIN_VIDEOOGL_CONFIG_H
#define _CONFIG_H #define _PLUGIN_VIDEOOGL_CONFIG_H
#include "Common.h" #include "Common.h"
@ -43,6 +43,7 @@ struct Config
{ {
Config(); Config();
void Load(); void Load();
void GameIniLoad();
void Save(); void Save();
// General // General
@ -104,4 +105,4 @@ private:
extern Config g_Config; extern Config g_Config;
#endif // _CONFIG_H #endif // _PLUGIN_VIDEOOGL_CONFIG_H

View File

@ -23,11 +23,9 @@
#include "VideoCommon.h" #include "VideoCommon.h"
#include "pluginspecs_video.h" #include "pluginspecs_video.h"
#include "ConfigManager.h"
// A global plugin specification // A global plugin specification
extern PLUGIN_GLOBALS* globals; extern PLUGIN_GLOBALS* globals;
//void OpenConsole();
//void CloseConsole();
#endif // _GLOBALS_H #endif // _GLOBALS_H

View File

@ -228,6 +228,8 @@ void Initialize(void *init)
InitXFBConvTables(); InitXFBConvTables();
g_Config.Load(); g_Config.Load();
g_Config.GameIniLoad();
if (!OpenGL_Create(g_VideoInitialize, 640, 480)) // 640x480 will be the default if all else fails if (!OpenGL_Create(g_VideoInitialize, 640, 480)) // 640x480 will be the default if all else fails
{ {
g_VideoInitialize.pLog("Renderer::Create failed\n", TRUE); g_VideoInitialize.pLog("Renderer::Create failed\n", TRUE);

View File

@ -15,8 +15,8 @@
// Official SVN repository and contact information can be found at // Official SVN repository and contact information can be found at
// http://code.google.com/p/dolphin-emu/ // http://code.google.com/p/dolphin-emu/
#ifndef _CONFIG_H #ifndef _PLUGIN_WIIMOTE_CONFIG_H
#define _CONFIG_H #define _PLUGIN_WIIMOTE_CONFIG_H
struct Config struct Config
@ -91,4 +91,4 @@ struct Config
extern Config g_Config; extern Config g_Config;
#endif // _CONFIG_H #endif // _PLUGIN_WIIMOTE_CONFIG_H

View File

@ -15,8 +15,8 @@
// Official SVN repository and contact information can be found at // Official SVN repository and contact information can be found at
// http://code.google.com/p/dolphin-emu/ // http://code.google.com/p/dolphin-emu/
#ifndef _CONFIG_H #ifndef _PLUGIN_NJOY_SDL_CONFIG_H
#define _CONFIG_H #define _PLUGIN_NJOY_SDL_CONFIG_H
struct Config struct Config
{ {
@ -38,4 +38,4 @@ struct Config
extern Config g_Config; extern Config g_Config;
#endif // _CONFIG_H #endif // _PLUGIN_NJOY_SDL_CONFIG_H