diff options
| author | SND\ckain_cp <SND\ckain_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2013-03-04 18:35:12 +0000 |
|---|---|---|
| committer | SND\ckain_cp <SND\ckain_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2013-03-04 18:35:12 +0000 |
| commit | 7b6f0ceec2e6fc7b92a7bf7b2814c9813114b964 (patch) | |
| tree | f7758d4df34f6b42d0e851fc82930bcb6869f28e /libpcsxcore | |
| parent | f13964f607fb1f47463970f90ec7e1787b368e8f (diff) | |
| download | pcsxr-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-x | libpcsxcore/psxbios.c | 27 | ||||
| -rwxr-xr-x | libpcsxcore/r3000a.c | 30 |
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; } } |
