Allow transferpaks to be set through the RDB. Still need to implement the actual settings in the GUI

This commit is contained in:
Emmet Young 2016-02-01 23:41:46 +11:00
parent 258a5a0eb8
commit 1ddeb52f7f
4 changed files with 9 additions and 4 deletions

View File

@ -811,7 +811,7 @@ bool GBCart::init_gb_cart(struct gb_cart* gb_cart, const char* gb_file)
return false;
}
read_from_file("C:/Users/death/Desktop/pokemonsilver.sav", ram, ram_size );
read_from_file(g_Settings->LoadStringVal(Game_Transferpak_Sav).c_str(), ram, ram_size );
}
//If we have RTC we need to load in the data, we assume the save will use the VBA-M format
@ -849,8 +849,8 @@ bool GBCart::init_gb_cart(struct gb_cart* gb_cart, const char* gb_file)
void GBCart::save_gb_cart(struct gb_cart* gb_cart)
{
FILE *fRAM = fopen("C:/Users/death/Desktop/pokemonsilver.sav", "wb");
FILE *fRAM = fopen(g_Settings->LoadStringVal(Game_Transferpak_Sav).c_str(), "wb");
if (gb_cart->has_rtc)
{
fwrite(gb_cart->ram, 1, gb_cart->ram_size-0x30, fRAM);

View File

@ -21,8 +21,9 @@ uint16_t gb_cart_address(unsigned int bank, uint16_t address)
void Transferpak::Init()
{
memset(&tpak, 0, sizeof(tpak));
tpak.access_mode = (!GBCart::init_gb_cart(&tpak.gb_cart, "C:/Users/death/Desktop/pokemonsilver.gbc")) ? CART_NOT_INSERTED : CART_ACCESS_MODE_0;
tpak.access_mode = (!GBCart::init_gb_cart(&tpak.gb_cart, g_Settings->LoadStringVal(Game_Transferpak_ROM).c_str())) ? CART_NOT_INSERTED : CART_ACCESS_MODE_0;
tpak.access_mode_changed = 0x44;
}

View File

@ -157,6 +157,8 @@ enum SettingID
Game_AudioResetOnLoad,
Game_AllowROMWrites,
Game_CRC_Recalc,
Game_Transferpak_ROM,
Game_Transferpak_Sav,
// General Game running info
GameRunning_LoadingInProgress,

View File

@ -224,6 +224,8 @@ void CSettings::AddHowToHandleSetting(const char * BaseDirectory)
AddHandler(Game_AudioResetOnLoad, new CSettingTypeGame("AudioResetOnLoad", Rdb_AudioResetOnLoad));
AddHandler(Game_AllowROMWrites, new CSettingTypeGame("AllowROMWrites", Rdb_AllowROMWrites));
AddHandler(Game_CRC_Recalc, new CSettingTypeGame("CRC-Recalc", Rdb_CRC_Recalc));
AddHandler(Game_Transferpak_ROM, new CSettingTypeGame("Tpak-ROM-dir", Default_None));
AddHandler(Game_Transferpak_Sav, new CSettingTypeGame("Tpak-Sav-dir", Default_None));
//User Interface
AddHandler(UserInterface_BasicMode, new CSettingTypeApplication("", "Basic Mode", (uint32_t)true));