Port libretro reios params with less intrusive query
This commit is contained in:
parent
f2b9b2fcf7
commit
4424d84960
|
@ -15,6 +15,7 @@
|
|||
|
||||
#include "webui/server.h"
|
||||
#include "hw/naomi/naomi_cart.h"
|
||||
#include "reios/reios.h"
|
||||
|
||||
settings_t settings;
|
||||
|
||||
|
@ -241,9 +242,12 @@ void dc_stop()
|
|||
sh4_cpu.Stop();
|
||||
}
|
||||
|
||||
char *configFile;
|
||||
|
||||
void LoadCustom()
|
||||
{
|
||||
char *configFile = ""; // Replace with code to get a per-game config file
|
||||
|
||||
configFile = reios_disk_id();
|
||||
|
||||
settings.dynarec.Enable = cfgLoadInt(configFile,"Dynarec.Enabled", settings.dynarec.Enable ? 1 : 0) != 0;
|
||||
settings.dynarec.idleskip = cfgLoadInt(configFile,"Dynarec.idleskip", settings.dynarec.idleskip ? 1 : 0) != 0;
|
||||
|
@ -335,6 +339,16 @@ void LoadSettings()
|
|||
|
||||
LoadCustom();
|
||||
}
|
||||
|
||||
void SaveCustom()
|
||||
{
|
||||
cfgSaveInt(configFile,"Dynarec.Enabled", settings.dynarec.Enable);
|
||||
cfgSaveInt(configFile,"Dreamcast.Cable", settings.dreamcast.cable);
|
||||
cfgSaveInt(configFile,"Dreamcast.RTC", settings.dreamcast.RTC);
|
||||
cfgSaveInt(configFile,"Dreamcast.Region", settings.dreamcast.region);
|
||||
cfgSaveInt(configFile,"Dreamcast.Broadcast",settings.dreamcast.broadcast);
|
||||
}
|
||||
|
||||
void SaveSettings()
|
||||
{
|
||||
cfgSaveInt("config","Dynarec.Enabled", settings.dynarec.Enable);
|
||||
|
@ -342,4 +356,6 @@ void SaveSettings()
|
|||
cfgSaveInt("config","Dreamcast.RTC", settings.dreamcast.RTC);
|
||||
cfgSaveInt("config","Dreamcast.Region", settings.dreamcast.region);
|
||||
cfgSaveInt("config","Dreamcast.Broadcast",settings.dreamcast.broadcast);
|
||||
|
||||
SaveCustom();
|
||||
}
|
||||
|
|
|
@ -97,7 +97,52 @@ bool reios_locate_bootfile(const char* bootfile="1ST_READ.BIN") {
|
|||
return false;
|
||||
}
|
||||
|
||||
char ip_bin[256];
|
||||
char reios_hardware_id[17];
|
||||
char reios_maker_id[17];
|
||||
char reios_device_info[17];
|
||||
char reios_area_symbols[9];
|
||||
char reios_peripherals[9];
|
||||
char reios_product_number[11];
|
||||
char reios_product_version[7];
|
||||
char reios_releasedate[17];
|
||||
char reios_boot_filename[17];
|
||||
char reios_software_company[17];
|
||||
char reios_software_name[129];
|
||||
char reios_bootfile[32];
|
||||
|
||||
char* reios_disk_id() {
|
||||
|
||||
if (libGDR_GetDiscType() == GdRom) {
|
||||
base_fad = 45150;
|
||||
descrambl = false;
|
||||
}
|
||||
else {
|
||||
u8 ses[6];
|
||||
libGDR_GetSessionInfo(ses, 0);
|
||||
libGDR_GetSessionInfo(ses, ses[2]);
|
||||
base_fad = (ses[3] << 16) | (ses[4] << 8) | (ses[5] << 0);
|
||||
descrambl = true;
|
||||
}
|
||||
|
||||
libGDR_ReadSector(GetMemPtr(0x8c008000, 0), base_fad, 256, 2048);
|
||||
memset(ip_bin, 0, sizeof(ip_bin));
|
||||
memcpy(ip_bin, GetMemPtr(0x8c008000, 0), 256);
|
||||
memcpy(&reios_hardware_id[0], &ip_bin[0], 16 * sizeof(char));
|
||||
memcpy(&reios_maker_id[0], &ip_bin[16], 16 * sizeof(char));
|
||||
memcpy(&reios_device_info[0], &ip_bin[32], 16 * sizeof(char));
|
||||
memcpy(&reios_area_symbols[0], &ip_bin[48], 8 * sizeof(char));
|
||||
memcpy(&reios_peripherals[0], &ip_bin[56], 8 * sizeof(char));
|
||||
memcpy(&reios_product_number[0], &ip_bin[64], 10 * sizeof(char));
|
||||
memcpy(&reios_product_version[0], &ip_bin[74], 6 * sizeof(char));
|
||||
memcpy(&reios_releasedate[0], &ip_bin[80], 16 * sizeof(char));
|
||||
memcpy(&reios_boot_filename[0], &ip_bin[96], 16 * sizeof(char));
|
||||
memcpy(&reios_software_company[0], &ip_bin[112], 16 * sizeof(char));
|
||||
memcpy(&reios_software_name[0], &ip_bin[128], 128 * sizeof(char));
|
||||
|
||||
return reios_product_number;
|
||||
}
|
||||
|
||||
const char* reios_locate_ip() {
|
||||
|
||||
if (libGDR_GetDiscType() == GdRom) {
|
||||
|
|
|
@ -9,4 +9,6 @@ void reios_term();
|
|||
|
||||
void DYNACALL reios_trap(u32 op);
|
||||
|
||||
#define REIOS_OPCODE 0x085B
|
||||
char* reios_disk_id();
|
||||
|
||||
#define REIOS_OPCODE 0x085B
|
||||
|
|
Loading…
Reference in New Issue