X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=libpcsxcore%2Fpsxhle.c;h=5ef484032f188721e25cb1649312d5b1585b966b;hb=dc4fa8bcd7d8fb9ccd6c742a350f69e0683350e0;hp=52227a40df6f0db0aa846ec4a3352aff897055ae;hpb=dd79da89fc4ddf020bb6f8d8c8a733429249bab3;p=pcsx_rearmed.git diff --git a/libpcsxcore/psxhle.c b/libpcsxcore/psxhle.c index 52227a40..5ef48403 100644 --- a/libpcsxcore/psxhle.c +++ b/libpcsxcore/psxhle.c @@ -23,8 +23,17 @@ #include "psxhle.h" +#if 0 +#define PSXHLE_LOG SysPrintf +#else +#define PSXHLE_LOG(...) +#endif + static void hleDummy() { + log_unhandled("hleDummy called @%08x ra=%08x\n", + psxRegs.pc - 4, psxRegs.GPR.n.ra); psxRegs.pc = psxRegs.GPR.n.ra; + psxRegs.cycle += 1000; psxBranchTest(); } @@ -54,10 +63,10 @@ static void hleC0() { } static void hleBootstrap() { // 0xbfc00000 - SysPrintf("hleBootstrap\n"); + PSXHLE_LOG("hleBootstrap\n"); CheckCdrom(); LoadCdrom(); - SysPrintf("CdromLabel: \"%s\": PC = %8.8lx (SP = %8.8lx)\n", CdromLabel, psxRegs.pc, psxRegs.GPR.n.sp); + PSXHLE_LOG("CdromLabel: \"%s\": PC = %8.8lx (SP = %8.8lx)\n", CdromLabel, psxRegs.pc, psxRegs.GPR.n.sp); } typedef struct { @@ -77,7 +86,7 @@ typedef struct { static void hleExecRet() { EXEC *header = (EXEC*)PSXM(psxRegs.GPR.n.s0); - SysPrintf("ExecRet %x: %x\n", psxRegs.GPR.n.s0, header->ret); + PSXHLE_LOG("ExecRet %x: %x\n", psxRegs.GPR.n.s0, header->ret); psxRegs.GPR.n.ra = header->ret; psxRegs.GPR.n.sp = header->_sp; @@ -89,8 +98,14 @@ static void hleExecRet() { psxRegs.pc = psxRegs.GPR.n.ra; } -const void (*psxHLEt[8])() = { +void (* const psxHLEt[22])() = { hleDummy, hleA0, hleB0, hleC0, - hleBootstrap, hleExecRet, - hleDummy, hleDummy + hleBootstrap, hleExecRet, psxBiosException, hleDummy, + hleExc0_0_1, hleExc0_0_2, + hleExc0_1_1, hleExc0_1_2, hleExc0_2_2_syscall, + hleExc1_0_1, hleExc1_0_2, + hleExc1_1_1, hleExc1_1_2, + hleExc1_2_1, hleExc1_2_2, + hleExc1_3_1, hleExc1_3_2, + hleExc3_0_2_defint, };