summaryrefslogtreecommitdiff
path: root/libpcsxcore
diff options
context:
space:
mode:
authorSND\ckain_cp <SND\ckain_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2013-03-04 18:35:12 +0000
committerSND\ckain_cp <SND\ckain_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2013-03-04 18:35:12 +0000
commit7b6f0ceec2e6fc7b92a7bf7b2814c9813114b964 (patch)
treef7758d4df34f6b42d0e851fc82930bcb6869f28e /libpcsxcore
parentf13964f607fb1f47463970f90ec7e1787b368e8f (diff)
downloadpcsxr-7b6f0ceec2e6fc7b92a7bf7b2814c9813114b964.tar.gz
PSXBIOS_LOG and printf, puts, putchar: prettier output to the log.
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@83324 e17a0e51-4ae3-4d35-97c3-1a29b211df97
Diffstat (limited to 'libpcsxcore')
-rwxr-xr-xlibpcsxcore/psxbios.c27
-rwxr-xr-xlibpcsxcore/r3000a.c30
2 files changed, 46 insertions, 11 deletions
diff --git a/libpcsxcore/psxbios.c b/libpcsxcore/psxbios.c
index 3492361f..5fde5ad6 100755
--- a/libpcsxcore/psxbios.c
+++ b/libpcsxcore/psxbios.c
@@ -1005,7 +1005,11 @@ _start:
memcpy((char*)PSXM(sp), save, 4 * 4);
+#ifdef PSXBIOS_LOG
+ PSXBIOS_LOG("psxBios_%s: %s\n", biosA0n[0x3f], tmp);
+#else
SysPrintf(tmp);
+#endif
pc0 = ra;
}
@@ -1809,13 +1813,36 @@ void psxBios_close() { // 0x36
pc0 = ra;
}
+#define PSXSTRBUFMAX 255
+char psxstrbuf[PSXSTRBUFMAX+1];
+unsigned short psxstrbuf_count = 0;
+
void psxBios_putchar() { // 3d
+ char logchar = ( a0 == 0xa ? '>' : (char)a0 );
+ if (psxstrbuf_count < PSXSTRBUFMAX) psxstrbuf[psxstrbuf_count++] = logchar;
+
+#ifdef PSXBIOS_LOG
+ PSXBIOS_LOG("psxBios_%s: %x (%c)\n", biosB0n[0x3d], a0, logchar);
+#else
SysPrintf("%c", (char)a0);
+#endif
+ if ((a0 == 0xa && psxstrbuf_count >= 2) || psxstrbuf_count >= PSXSTRBUFMAX) {
+ psxstrbuf[psxstrbuf_count++] = '\0';
+#ifdef PSXBIOS_LOG
+ PSXBIOS_LOG("psxBios_%s: string_[%d]_cr: %s\n", biosB0n[0x3d], psxstrbuf_count, psxstrbuf);
+#endif
+ psxstrbuf_count = 0;
+ }
+
pc0 = ra;
}
void psxBios_puts() { // 3e/3f
+#ifdef PSXBIOS_LOG
+ PSXBIOS_LOG("psxBios_%s: %s\n", biosB0n[0x3f], Ra0);
+#else
SysPrintf(Ra0);
+#endif
pc0 = ra;
}
diff --git a/libpcsxcore/r3000a.c b/libpcsxcore/r3000a.c
index 4d014b72..fe908ecb 100755
--- a/libpcsxcore/r3000a.c
+++ b/libpcsxcore/r3000a.c
@@ -235,27 +235,35 @@ void psxJumpTest() {
u32 call = psxRegs.GPR.n.t1 & 0xff;
switch (psxRegs.pc & 0x1fffff) {
case 0xa0:
-#ifdef PSXBIOS_LOG
- if (call != 0x28 && call != 0xe) {
- PSXBIOS_LOG("Bios call a0: %s (%x) %x,%x,%x,%x\n", biosA0n[call], call, psxRegs.GPR.n.a0, psxRegs.GPR.n.a1, psxRegs.GPR.n.a2, psxRegs.GPR.n.a3); }
-#endif
if (biosA0[call])
biosA0[call]();
- break;
- case 0xb0:
+ else if (call != 0x28 && call != 0xe) {
#ifdef PSXBIOS_LOG
- if (call != 0x17 && call != 0xb) {
- PSXBIOS_LOG("Bios call b0: %s (%x) %x,%x,%x,%x\n", biosB0n[call], call, psxRegs.GPR.n.a0, psxRegs.GPR.n.a1, psxRegs.GPR.n.a2, psxRegs.GPR.n.a3); }
+ PSXBIOS_LOG("Bios call a0: %s (%x) %x,%x,%x,%x\n", biosA0n[call], call,
+ psxRegs.GPR.n.a0, psxRegs.GPR.n.a1, psxRegs.GPR.n.a2, psxRegs.GPR.n.a3);
#endif
+ }
+ break;
+ case 0xb0:
if (biosB0[call])
biosB0[call]();
+ else if (call != 0x17 && call != 0xb) {
+#ifdef PSXBIOS_LOG
+ PSXBIOS_LOG("Bios call b0: %s (%x) %x,%x,%x,%x\n", biosB0n[call], call,
+ psxRegs.GPR.n.a0, psxRegs.GPR.n.a1, psxRegs.GPR.n.a2, psxRegs.GPR.n.a3);
+#endif
+ }
break;
case 0xc0:
+ if (biosC0[call])
+ biosC0[call]();
+ else {
#ifdef PSXBIOS_LOG
- PSXBIOS_LOG("Bios call c0: %s (%x) %x,%x,%x,%x\n", biosC0n[call], call, psxRegs.GPR.n.a0, psxRegs.GPR.n.a1, psxRegs.GPR.n.a2, psxRegs.GPR.n.a3);
+ PSXBIOS_LOG("Bios call c0: %s (%x) %x,%x,%x,%x\n", biosC0n[call], call,
+ psxRegs.GPR.n.a0, psxRegs.GPR.n.a1, psxRegs.GPR.n.a2, psxRegs.GPR.n.a3);
#endif
- if (biosC0[call])
- biosC0[call]();
+ }
+
break;
}
}