X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=libpcsxcore%2Fr3000a.c;h=53a5ebac5eb5b9fdf561579b676c1b8c0ebcd910;hb=7b75929b9415646b25d9211975556f5466024a94;hp=8b7cfbf775b6f5d62c33529654669eb9545f6fa5;hpb=6d75addfea5544b926d3924b1bd1e1d8ce9ffdb4;p=pcsx_rearmed.git diff --git a/libpcsxcore/r3000a.c b/libpcsxcore/r3000a.c index 8b7cfbf7..53a5ebac 100644 --- a/libpcsxcore/r3000a.c +++ b/libpcsxcore/r3000a.c @@ -67,8 +67,14 @@ void psxReset() { psxHwReset(); psxBiosInit(); - if (!Config.HLE) + BiosLikeGPUSetup(); // a bit of a hack but whatever + + BiosBooted = FALSE; + if (!Config.HLE) { psxExecuteBios(); + if (psxRegs.pc == 0x80030000 && !Config.SlowBoot) + BiosBootBypass(); + } #ifdef EMU_LOG EMU_LOG("*BIOS END*\n"); @@ -237,7 +243,12 @@ void psxJumpTest() { } void psxExecuteBios() { - while (psxRegs.pc != 0x80030000) + int i; + for (i = 0; psxRegs.pc != 0x80030000 && i < 5000000; i++) psxCpu->ExecuteBlock(); + if (psxRegs.pc == 0x80030000) + BiosBooted = TRUE; + else + SysPrintf("BIOS boot timeout - custom BIOS?\n"); }