diff options
| author | SND\edgbla_cp <SND\edgbla_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2013-02-22 07:14:27 +0000 |
|---|---|---|
| committer | SND\edgbla_cp <SND\edgbla_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2013-02-22 07:14:27 +0000 |
| commit | cd8a6db7e6736696f77c7935dffb883aa5c2996a (patch) | |
| tree | c1f0298f2d0881575963b68db589e24820c03cc5 /libpcsxcore | |
| parent | e75205e3a33be2e5ff59508c77c91313d80717ea (diff) | |
| download | pcsxr-cd8a6db7e6736696f77c7935dffb883aa5c2996a.tar.gz | |
.
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@83090 e17a0e51-4ae3-4d35-97c3-1a29b211df97
Diffstat (limited to 'libpcsxcore')
| -rwxr-xr-x | libpcsxcore/debug.h | 3 | ||||
| -rwxr-xr-x | libpcsxcore/plugins.c | 48 | ||||
| -rwxr-xr-x | libpcsxcore/plugins.h | 46 | ||||
| -rwxr-xr-x | libpcsxcore/psxcounters.c | 7 | ||||
| -rwxr-xr-x | libpcsxcore/psxhw.c | 56 |
5 files changed, 110 insertions, 50 deletions
diff --git a/libpcsxcore/debug.h b/libpcsxcore/debug.h index ba89e3d5..f54c4883 100755 --- a/libpcsxcore/debug.h +++ b/libpcsxcore/debug.h @@ -53,6 +53,7 @@ char* disR3000AF(u32 code, u32 pc); //#define LOG_STDOUT //#define PAD_LOG __Log +//#define SIO1_LOG __Log //#define GTE_LOG __Log //#define CDR_LOG __Log("%8.8lx %8.8lx: ", psxRegs.pc, psxRegs.cycle); __Log //#define CDR_LOG_IO __Log("%8.8lx %8.8lx: ", psxRegs.pc, psxRegs.cycle); __Log @@ -64,7 +65,7 @@ char* disR3000AF(u32 code, u32 pc); //#define PSXCPU_LOG __Log #if defined(PSXCPU_LOG) || defined(PSXDMA_LOG) || defined(CDR_LOG) || defined(PSXHW_LOG) || \ - defined(PSXBIOS_LOG) || defined(PSXMEM_LOG) || defined(GTE_LOG) || defined(PAD_LOG) + defined(PSXBIOS_LOG) || defined(PSXMEM_LOG) || defined(GTE_LOG) || defined(PAD_LOG) || defined(SIO1_LOG) #define EMU_LOG __Log #endif diff --git a/libpcsxcore/plugins.c b/libpcsxcore/plugins.c index ff9b00e4..30b62b0d 100755 --- a/libpcsxcore/plugins.c +++ b/libpcsxcore/plugins.c @@ -178,6 +178,7 @@ SIO1readCtrl16 SIO1_readCtrl16; SIO1readCtrl32 SIO1_readCtrl32; SIO1readBaud16 SIO1_readBaud16; SIO1readBaud32 SIO1_readBaud32; +SIO1update SIO1_update; SIO1registerCallback SIO1_registerCallback; #endif @@ -638,28 +639,29 @@ void CALLBACK SIO1__about(void) {} void CALLBACK SIO1__pause(void) {} void CALLBACK SIO1__resume(void) {} long CALLBACK SIO1__keypressed(int key) { return 0; } -void CALLBACK SIO1__writeData8(unsigned char val) {} -void CALLBACK SIO1__writeData16(unsigned short val) {} -void CALLBACK SIO1__writeData32(unsigned long val) {} -void CALLBACK SIO1__writeStat16(unsigned short val) {} -void CALLBACK SIO1__writeStat32(unsigned long val) {} -void CALLBACK SIO1__writeMode16(unsigned short val) {} -void CALLBACK SIO1__writeMode32(unsigned long val) {} -void CALLBACK SIO1__writeCtrl16(unsigned short val) {} -void CALLBACK SIO1__writeCtrl32(unsigned long val) {} -void CALLBACK SIO1__writeBaud16(unsigned short val) {} -void CALLBACK SIO1__writeBaud32(unsigned long val) {} -unsigned char CALLBACK SIO1__readData8(void) { return 0; } -unsigned short CALLBACK SIO1__readData16(void) { return 0; } -unsigned long CALLBACK SIO1__readData32(void) { return 0; } -unsigned short CALLBACK SIO1__readStat16(void) { return 0; } -unsigned long CALLBACK SIO1__readStat32(void) { return 0; } -unsigned short CALLBACK SIO1__readMode16(void) { return 0; } -unsigned long CALLBACK SIO1__readMode32(void) { return 0; } -unsigned short CALLBACK SIO1__readCtrl16(void) { return 0; } -unsigned long CALLBACK SIO1__readCtrl32(void) { return 0; } -unsigned short CALLBACK SIO1__readBaud16(void) { return 0; } -unsigned long CALLBACK SIO1__readBaud32(void) { return 0; } +void CALLBACK SIO1__writeData8(u8 val) {} +void CALLBACK SIO1__writeData16(u16 val) {} +void CALLBACK SIO1__writeData32(u32 val) {} +void CALLBACK SIO1__writeStat16(u16 val) {} +void CALLBACK SIO1__writeStat32(u32 val) {} +void CALLBACK SIO1__writeMode16(u16 val) {} +void CALLBACK SIO1__writeMode32(u32 val) {} +void CALLBACK SIO1__writeCtrl16(u16 val) {} +void CALLBACK SIO1__writeCtrl32(u32 val) {} +void CALLBACK SIO1__writeBaud16(u16 val) {} +void CALLBACK SIO1__writeBaud32(u32 val) {} +u8 CALLBACK SIO1__readData8(void) { return 0; } +u16 CALLBACK SIO1__readData16(void) { return 0; } +u32 CALLBACK SIO1__readData32(void) { return 0; } +u16 CALLBACK SIO1__readStat16(void) { return 0; } +u32 CALLBACK SIO1__readStat32(void) { return 0; } +u16 CALLBACK SIO1__readMode16(void) { return 0; } +u32 CALLBACK SIO1__readMode32(void) { return 0; } +u16 CALLBACK SIO1__readCtrl16(void) { return 0; } +u32 CALLBACK SIO1__readCtrl32(void) { return 0; } +u16 CALLBACK SIO1__readBaud16(void) { return 0; } +u32 CALLBACK SIO1__readBaud32(void) { return 0; } +void CALLBACK SIO1__update(uint32_t t) {}; void CALLBACK SIO1__registerCallback(void (CALLBACK *callback)(void)) {}; #define LoadSio1Sym1(dest, name) \ @@ -703,6 +705,7 @@ static int LoadSIO1plugin(const char *SIO1dll) { LoadSio1Sym0(writeCtrl32, "SIO1writeCtrl32"); LoadSio1Sym0(writeBaud16, "SIO1writeBaud16"); LoadSio1Sym0(writeBaud32, "SIO1writeBaud32"); + LoadSio1Sym0(readData8, "SIO1readData8"); LoadSio1Sym0(readData16, "SIO1readData16"); LoadSio1Sym0(readData32, "SIO1readData32"); LoadSio1Sym0(readStat16, "SIO1readStat16"); @@ -713,6 +716,7 @@ static int LoadSIO1plugin(const char *SIO1dll) { LoadSio1Sym0(readCtrl32, "SIO1readCtrl32"); LoadSio1Sym0(readBaud16, "SIO1readBaud16"); LoadSio1Sym0(readBaud32, "SIO1readBaud32"); + LoadSio1Sym0(update, "SIO1update"); LoadSio1Sym0(registerCallback, "SIO1registerCallback"); return 0; diff --git a/libpcsxcore/plugins.h b/libpcsxcore/plugins.h index 27b92822..f8cfdf44 100755 --- a/libpcsxcore/plugins.h +++ b/libpcsxcore/plugins.h @@ -348,28 +348,29 @@ typedef void (CALLBACK* SIO1about)(void); typedef void (CALLBACK* SIO1pause)(void); typedef void (CALLBACK* SIO1resume)(void); typedef long (CALLBACK* SIO1keypressed)(int); -typedef void (CALLBACK* SIO1writeData8)(unsigned char); -typedef void (CALLBACK* SIO1writeData16)(unsigned short); -typedef void (CALLBACK* SIO1writeData32)(unsigned long); -typedef void (CALLBACK* SIO1writeStat16)(unsigned short); -typedef void (CALLBACK* SIO1writeStat32)(unsigned long); -typedef void (CALLBACK* SIO1writeMode16)(unsigned short); -typedef void (CALLBACK* SIO1writeMode32)(unsigned long); -typedef void (CALLBACK* SIO1writeCtrl16)(unsigned short); -typedef void (CALLBACK* SIO1writeCtrl32)(unsigned long); -typedef void (CALLBACK* SIO1writeBaud16)(unsigned short); -typedef void (CALLBACK* SIO1writeBaud32)(unsigned long); -typedef unsigned char (CALLBACK* SIO1readData8)(void); -typedef unsigned short (CALLBACK* SIO1readData16)(void); -typedef unsigned long (CALLBACK* SIO1readData32)(void); -typedef unsigned short (CALLBACK* SIO1readStat16)(void); -typedef unsigned long (CALLBACK* SIO1readStat32)(void); -typedef unsigned short (CALLBACK* SIO1readMode16)(void); -typedef unsigned long (CALLBACK* SIO1readMode32)(void); -typedef unsigned short (CALLBACK* SIO1readCtrl16)(void); -typedef unsigned long (CALLBACK* SIO1readCtrl32)(void); -typedef unsigned short (CALLBACK* SIO1readBaud16)(void); -typedef unsigned long (CALLBACK* SIO1readBaud32)(void); +typedef void (CALLBACK* SIO1writeData8)(u8); +typedef void (CALLBACK* SIO1writeData16)(u16); +typedef void (CALLBACK* SIO1writeData32)(u32); +typedef void (CALLBACK* SIO1writeStat16)(u16); +typedef void (CALLBACK* SIO1writeStat32)(u32); +typedef void (CALLBACK* SIO1writeMode16)(u16); +typedef void (CALLBACK* SIO1writeMode32)(u32); +typedef void (CALLBACK* SIO1writeCtrl16)(u16); +typedef void (CALLBACK* SIO1writeCtrl32)(u32); +typedef void (CALLBACK* SIO1writeBaud16)(u16); +typedef void (CALLBACK* SIO1writeBaud32)(u32); +typedef u8 (CALLBACK* SIO1readData8)(void); +typedef u16 (CALLBACK* SIO1readData16)(void); +typedef u32 (CALLBACK* SIO1readData32)(void); +typedef u16 (CALLBACK* SIO1readStat16)(void); +typedef u32 (CALLBACK* SIO1readStat32)(void); +typedef u16 (CALLBACK* SIO1readMode16)(void); +typedef u32 (CALLBACK* SIO1readMode32)(void); +typedef u16 (CALLBACK* SIO1readCtrl16)(void); +typedef u32 (CALLBACK* SIO1readCtrl32)(void); +typedef u16 (CALLBACK* SIO1readBaud16)(void); +typedef u32 (CALLBACK* SIO1readBaud32)(void); +typedef void (CALLBACK* SIO1update)(uint32_t); typedef void (CALLBACK* SIO1registerCallback)(void (CALLBACK *callback)(void)); // SIO1 function pointers @@ -405,6 +406,7 @@ extern SIO1readCtrl16 SIO1_readCtrl16; extern SIO1readCtrl32 SIO1_readCtrl32; extern SIO1readBaud16 SIO1_readBaud16; extern SIO1readBaud32 SIO1_readBaud32; +extern SIO1update SIO1_update; extern SIO1registerCallback SIO1_registerCallback; #endif diff --git a/libpcsxcore/psxcounters.c b/libpcsxcore/psxcounters.c index 631c21f0..8cc2ee9b 100755 --- a/libpcsxcore/psxcounters.c +++ b/libpcsxcore/psxcounters.c @@ -286,6 +286,13 @@ void psxRcntUpdate() } } +#ifdef ENABLE_SIO1API + if( SIO1_update ) + { + SIO1_update( 0 ); + } +#endif + // VSync irq. if( hSyncCount == VBlankStart[Config.PsxType] ) { diff --git a/libpcsxcore/psxhw.c b/libpcsxcore/psxhw.c index 06f00d03..0fdfd1d0 100755 --- a/libpcsxcore/psxhw.c +++ b/libpcsxcore/psxhw.c @@ -41,7 +41,7 @@ u8 psxHwRead8(u32 add) { unsigned char hard; switch (add) { - case 0x1f801040: hard = sioRead8();break; + case 0x1f801040: hard = sioRead8(); break; #ifdef ENABLE_SIO1API case 0x1f801050: hard = SIO1_readData8(); break; #endif @@ -68,11 +68,13 @@ u16 psxHwRead16(u32 add) { switch (add) { #ifdef PSXHW_LOG - case 0x1f801070: PSXHW_LOG("IREG 16bit read %x\n", psxHu16(0x1070)); + case 0x1f801070: + PSXHW_LOG("IREG 16bit read %x\n", psxHu16(0x1070)); return psxHu16(0x1070); #endif #ifdef PSXHW_LOG - case 0x1f801074: PSXHW_LOG("IMASK 16bit read %x\n", psxHu16(0x1074)); + case 0x1f801074: + PSXHW_LOG("IMASK 16bit read %x\n", psxHu16(0x1074)); return psxHu16(0x1074); #endif @@ -110,15 +112,33 @@ u16 psxHwRead16(u32 add) { #ifdef ENABLE_SIO1API case 0x1f801050: hard = SIO1_readData16(); +#ifdef SIO1_LOG + SIO1_LOG("sio1 read16 %x; ret = %x\n", add&0xf, hard); +#endif return hard; case 0x1f801054: hard = SIO1_readStat16(); +#ifdef SIO1_LOG + SIO1_LOG("sio1 read16 %x; ret = %x\n", add&0xf, hard); +#endif + return hard; + case 0x1f801058: + hard = SIO1_readMode16(); +#ifdef SIO1_LOG + SIO1_LOG("sio1 read16 %x; ret = %x\n", add&0xf, hard); +#endif return hard; case 0x1f80105a: hard = SIO1_readCtrl16(); +#ifdef SIO1_LOG + SIO1_LOG("sio1 read16 %x; ret = %x\n", add&0xf, hard); +#endif return hard; case 0x1f80105e: hard = SIO1_readBaud16(); +#ifdef SIO1_LOG + SIO1_LOG("sio1 read16 %x; ret = %x\n", add&0xf, hard); +#endif return hard; #endif case 0x1f801100: @@ -213,6 +233,9 @@ u32 psxHwRead32(u32 add) { #ifdef ENABLE_SIO1API case 0x1f801050: hard = SIO1_readData32(); +#ifdef SIO1_LOG + SIO1_LOG("sio1 read32 ;ret = %x\n", hard); +#endif return hard; #endif #ifdef PSXHW_LOG @@ -221,11 +244,13 @@ u32 psxHwRead32(u32 add) { return psxHu32(0x1060); #endif #ifdef PSXHW_LOG - case 0x1f801070: PSXHW_LOG("IREG 32bit read %x\n", psxHu32(0x1070)); + case 0x1f801070: + PSXHW_LOG("IREG 32bit read %x\n", psxHu32(0x1070)); return psxHu32(0x1070); #endif #ifdef PSXHW_LOG - case 0x1f801074: PSXHW_LOG("IMASK 32bit read %x\n", psxHu32(0x1074)); + case 0x1f801074: + PSXHW_LOG("IMASK 32bit read %x\n", psxHu32(0x1074)); return psxHu32(0x1074); #endif @@ -407,15 +432,33 @@ void psxHwWrite16(u32 add, u16 value) { #ifdef ENABLE_SIO1API case 0x1f801050: SIO1_writeData16(value); +#ifdef SIO1_LOG + SIO1_LOG("sio1 write16 %x, %x\n", add&0xf, value); +#endif return; case 0x1f801054: SIO1_writeStat16(value); +#ifdef SIO1_LOG + SIO1_LOG("sio1 write16 %x, %x\n", add&0xf, value); +#endif + return; + case 0x1f801058: + SIO1_writeMode16(value); +#ifdef SIO1_LOG + SIO1_LOG("sio1 write16 %x, %x\n", add&0xf, value); +#endif return; case 0x1f80105a: SIO1_writeCtrl16(value); +#ifdef SIO1_LOG + SIO1_LOG("sio1 write16 %x, %x\n", add&0xf, value); +#endif return; case 0x1f80105e: SIO1_writeBaud16(value); +#ifdef SIO1_LOG + SIO1_LOG("sio1 write16 %x, %x\n", add&0xf, value); +#endif return; #endif case 0x1f801070: @@ -524,6 +567,9 @@ void psxHwWrite32(u32 add, u32 value) { #ifdef ENABLE_SIO1API case 0x1f801050: SIO1_writeData32(value); +#ifdef SIO1_LOG + SIO1_LOG("sio1 write32 %x\n", value); +#endif return; #endif #ifdef PSXHW_LOG |
