aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--frontend/libretro.c22
-rw-r--r--libpcsxcore/misc.c2
-rw-r--r--libpcsxcore/psxcommon.h1
3 files changed, 17 insertions, 8 deletions
diff --git a/frontend/libretro.c b/frontend/libretro.c
index ec0065d..2363c37 100644
--- a/frontend/libretro.c
+++ b/frontend/libretro.c
@@ -22,6 +22,7 @@
#include "../libpcsxcore/cdrom.h"
#include "../libpcsxcore/cdriso.h"
#include "../libpcsxcore/cheat.h"
+#include "../libpcsxcore/r3000a.h"
#include "../plugins/dfsound/out.h"
#include "../plugins/dfsound/spu_config.h"
#include "../plugins/dfinput/externals.h"
@@ -1582,7 +1583,9 @@ static void update_variables(bool in_flight)
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) || var.value)
{
if (strcmp(var.value, "enabled") == 0)
- rebootemu = 1;
+ Config.SlowBoot = 1;
+ else
+ Config.SlowBoot = 0;
}
}
}
@@ -1622,11 +1625,16 @@ static uint16_t get_analog_button(retro_input_state_t input_state_cb, int player
void retro_run(void)
{
- int i;
- //SysReset must be run while core is running,Not in menu (Locks up Retroarch)
- if(rebootemu != 0){
- rebootemu = 0;
- SysReset();
+ int i;
+ //SysReset must be run while core is running,Not in menu (Locks up Retroarch)
+ if (rebootemu != 0) {
+ rebootemu = 0;
+ SysReset();
+ if (!Config.HLE && !Config.SlowBoot) {
+ // skip BIOS logos
+ psxRegs.pc = psxRegs.GPR.n.ra;
+ return 0;
+ }
}
input_poll_cb();
@@ -1938,7 +1946,7 @@ void retro_init(void)
#endif
vout_buf_ptr = vout_buf;
-
+
if (environ_cb(RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY, &dir) && dir)
{
snprintf(Config.BiosDir, sizeof(Config.BiosDir), "%s", dir);
diff --git a/libpcsxcore/misc.c b/libpcsxcore/misc.c
index 58170cf..bb34e5b 100644
--- a/libpcsxcore/misc.c
+++ b/libpcsxcore/misc.c
@@ -180,7 +180,7 @@ int LoadCdrom() {
// is just below, do it here
fake_bios_gpu_setup();
- if (!Config.HLE) {
+ if (!Config.HLE && !Config.SlowBoot) {
// skip BIOS logos
psxRegs.pc = psxRegs.GPR.n.ra;
return 0;
diff --git a/libpcsxcore/psxcommon.h b/libpcsxcore/psxcommon.h
index 9f5444e..a7dd6ae 100644
--- a/libpcsxcore/psxcommon.h
+++ b/libpcsxcore/psxcommon.h
@@ -119,6 +119,7 @@ typedef struct {
boolean PsxAuto;
boolean Cdda;
boolean HLE;
+ boolean SlowBoot;
boolean Debug;
boolean PsxOut;
boolean SpuIrq;