Sio1 interface (link cable).
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@54110 e17a0e51-4ae3-4d35-97c3-1a29b211df97
This commit is contained in:
parent
a6d7aa989a
commit
8410fc0c2e
|
@ -1,3 +1,10 @@
|
|||
July 3, 2010 edgbla <edgbla@yandex.ru>
|
||||
|
||||
* libpcsxcore/psxhw.c: Sio1 interface (link cable).
|
||||
* libpcsxcore/plugins.c: Likewise.
|
||||
* libpcsxcore/plugins.h: Likewise.
|
||||
* libpcsxcore/psxcommon.h: Likewise.
|
||||
|
||||
July 2, 2010 Wei Mingzhi <whistler_wmz@users.sf.net>
|
||||
|
||||
* libpcsxcore/cdriso.c: Fixed subchannel data handling with images ripped
|
||||
|
|
|
@ -67,8 +67,8 @@ CDRgetBufferSub CDR_getBufferSub;
|
|||
CDRconfigure CDR_configure;
|
||||
CDRabout CDR_about;
|
||||
CDRsetfilename CDR_setfilename;
|
||||
CDRreadCDDA CDR_readCDDA;
|
||||
CDRgetTE CDR_getTE;
|
||||
CDRreadCDDA CDR_readCDDA;
|
||||
CDRgetTE CDR_getTE;
|
||||
|
||||
SPUconfigure SPU_configure;
|
||||
SPUabout SPU_about;
|
||||
|
@ -135,6 +135,40 @@ NETrecvPadData NET_recvPadData;
|
|||
NETsetInfo NET_setInfo;
|
||||
NETkeypressed NET_keypressed;
|
||||
|
||||
SIO1init SIO1_init;
|
||||
SIO1shutdown SIO1_shutdown;
|
||||
SIO1open SIO1_open;
|
||||
SIO1close SIO1_close;
|
||||
SIO1test SIO1_test;
|
||||
SIO1configure SIO1_configure;
|
||||
SIO1about SIO1_about;
|
||||
SIO1pause SIO1_pause;
|
||||
SIO1resume SIO1_resume;
|
||||
SIO1keypressed SIO1_keypressed;
|
||||
SIO1writeData8 SIO1_writeData8;
|
||||
SIO1writeData16 SIO1_writeData16;
|
||||
SIO1writeData32 SIO1_writeData32;
|
||||
SIO1writeStat16 SIO1_writeStat16;
|
||||
SIO1writeStat32 SIO1_writeStat32;
|
||||
SIO1writeMode16 SIO1_writeMode16;
|
||||
SIO1writeMode32 SIO1_writeMode32;
|
||||
SIO1writeCtrl16 SIO1_writeCtrl16;
|
||||
SIO1writeCtrl32 SIO1_writeCtrl32;
|
||||
SIO1writeBaud16 SIO1_writeBaud16;
|
||||
SIO1writeBaud32 SIO1_writeBaud32;
|
||||
SIO1readData8 SIO1_readData8;
|
||||
SIO1readData16 SIO1_readData16;
|
||||
SIO1readData32 SIO1_readData32;
|
||||
SIO1readStat16 SIO1_readStat16;
|
||||
SIO1readStat32 SIO1_readStat32;
|
||||
SIO1readMode16 SIO1_readMode16;
|
||||
SIO1readMode32 SIO1_readMode32;
|
||||
SIO1readCtrl16 SIO1_readCtrl16;
|
||||
SIO1readCtrl32 SIO1_readCtrl32;
|
||||
SIO1readBaud16 SIO1_readBaud16;
|
||||
SIO1readBaud32 SIO1_readBaud32;
|
||||
SIO1registerCallback SIO1_registerCallback;
|
||||
|
||||
static const char *err;
|
||||
|
||||
#define CheckErr(func) { \
|
||||
|
@ -559,6 +593,101 @@ static int LoadNETplugin(const char *NETdll) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
void *hSIO1Driver = NULL;
|
||||
|
||||
long CALLBACK SIO1__init(void) { return 0; }
|
||||
long CALLBACK SIO1__shutdown(void) { return 0; }
|
||||
long CALLBACK SIO1__open(void) { return 0; }
|
||||
long CALLBACK SIO1__close(void) { return 0; }
|
||||
long CALLBACK SIO1__configure(void) { return 0; }
|
||||
long CALLBACK SIO1__test(void) { return 0; }
|
||||
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__registerCallback(void (CALLBACK *callback)(void)) {};
|
||||
|
||||
void CALLBACK SIO1irq(void) {
|
||||
psxHu32ref(0x1070) |= SWAPu32(0x100);
|
||||
}
|
||||
|
||||
#define LoadSio1Sym1(dest, name) \
|
||||
LoadSym(SIO1_##dest, SIO1##dest, name, TRUE);
|
||||
|
||||
#define LoadSio1SymN(dest, name) \
|
||||
LoadSym(SIO1_##dest, SIO1##dest, name, FALSE);
|
||||
|
||||
#define LoadSio1Sym0(dest, name) \
|
||||
LoadSym(SIO1_##dest, SIO1##dest, name, FALSE); \
|
||||
if (SIO1_##dest == NULL) SIO1_##dest = (SIO1##dest) SIO1__##dest;
|
||||
|
||||
static int LoadSIO1plugin(const char *SIO1dll) {
|
||||
void *drv;
|
||||
/*
|
||||
hSIO1Driver = SysLoadLibrary(SIO1dll);
|
||||
if (hSIO1Driver == NULL) {
|
||||
SysMessage (_("Could not load SIO1 plugin %s!"), SIO1dll); return -1;
|
||||
}
|
||||
drv = hSIO1Driver;
|
||||
*/
|
||||
LoadSio1Sym0(init, "SIO1init");
|
||||
LoadSio1Sym0(shutdown, "SIO1shutdown");
|
||||
LoadSio1Sym0(open, "SIO1open");
|
||||
LoadSio1Sym0(close, "SIO1close");
|
||||
LoadSio1Sym0(pause, "SIO1pause");
|
||||
LoadSio1Sym0(resume, "SIO1resume");
|
||||
LoadSio1Sym0(keypressed, "SIO1keypressed");
|
||||
LoadSio1Sym0(configure, "SIO1configure");
|
||||
LoadSio1Sym0(test, "SIO1test");
|
||||
LoadSio1Sym0(about, "SIO1about");
|
||||
LoadSio1Sym0(writeData8, "SIO1writeData8");
|
||||
LoadSio1Sym0(writeData16, "SIO1writeData16");
|
||||
LoadSio1Sym0(writeData32, "SIO1writeData32");
|
||||
LoadSio1Sym0(writeStat16, "SIO1writeStat16");
|
||||
LoadSio1Sym0(writeStat32, "SIO1writeStat32");
|
||||
LoadSio1Sym0(writeMode16, "SIO1writeMode16");
|
||||
LoadSio1Sym0(writeMode32, "SIO1writeMode32");
|
||||
LoadSio1Sym0(writeCtrl16, "SIO1writeCtrl16");
|
||||
LoadSio1Sym0(writeCtrl32, "SIO1writeCtrl32");
|
||||
LoadSio1Sym0(writeBaud16, "SIO1writeBaud16");
|
||||
LoadSio1Sym0(writeBaud32, "SIO1writeBaud32");
|
||||
LoadSio1Sym0(readData16, "SIO1readData16");
|
||||
LoadSio1Sym0(readData32, "SIO1readData32");
|
||||
LoadSio1Sym0(readStat16, "SIO1readStat16");
|
||||
LoadSio1Sym0(readStat32, "SIO1readStat32");
|
||||
LoadSio1Sym0(readMode16, "SIO1readMode16");
|
||||
LoadSio1Sym0(readMode32, "SIO1readMode32");
|
||||
LoadSio1Sym0(readCtrl16, "SIO1readCtrl16");
|
||||
LoadSio1Sym0(readCtrl32, "SIO1readCtrl32");
|
||||
LoadSio1Sym0(readBaud16, "SIO1readBaud16");
|
||||
LoadSio1Sym0(readBaud32, "SIO1readBaud32");
|
||||
LoadSio1Sym0(registerCallback, "SIO1registerCallback");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void CALLBACK clearDynarec(void) {
|
||||
psxCpu->Reset();
|
||||
}
|
||||
|
@ -595,6 +724,9 @@ int LoadPlugins() {
|
|||
sprintf(Plugin, "%s/%s", Config.PluginsDir, Config.Net);
|
||||
if (LoadNETplugin(Plugin) == -1) Config.UseNet = FALSE;
|
||||
}
|
||||
|
||||
sprintf(Plugin, "%s/%s", Config.PluginsDir, Config.Sio1);
|
||||
if (LoadSIO1plugin(Plugin) == -1) return -1;
|
||||
|
||||
ret = CDR_init();
|
||||
if (ret < 0) { SysMessage (_("Error initializing CD-ROM plugin: %d"), ret); return -1; }
|
||||
|
@ -611,6 +743,9 @@ int LoadPlugins() {
|
|||
ret = NET_init();
|
||||
if (ret < 0) { SysMessage (_("Error initializing NetPlay plugin: %d"), ret); return -1; }
|
||||
}
|
||||
|
||||
ret = SIO1_init();
|
||||
if (ret < 0) { SysMessage (_("Error initializing SIO1 plugin: %d"), ret); return -1; }
|
||||
|
||||
SysPrintf(_("Plugins loaded.\n"));
|
||||
return 0;
|
||||
|
@ -628,6 +763,7 @@ void ReleasePlugins() {
|
|||
if (hSPUDriver != NULL) SPU_shutdown();
|
||||
if (hPAD1Driver != NULL) PAD1_shutdown();
|
||||
if (hPAD2Driver != NULL) PAD2_shutdown();
|
||||
if (hSIO1Driver != NULL) SIO1_shutdown();
|
||||
|
||||
if (Config.UseNet && hNETDriver != NULL) NET_shutdown();
|
||||
|
||||
|
@ -636,6 +772,7 @@ void ReleasePlugins() {
|
|||
if (hSPUDriver != NULL) SysCloseLibrary(hSPUDriver); hSPUDriver = NULL;
|
||||
if (hPAD1Driver != NULL) SysCloseLibrary(hPAD1Driver); hPAD1Driver = NULL;
|
||||
if (hPAD2Driver != NULL) SysCloseLibrary(hPAD2Driver); hPAD2Driver = NULL;
|
||||
if (hSIO1Driver != NULL) SysCloseLibrary(hSIO1Driver); hSIO1Driver = NULL;
|
||||
|
||||
if (Config.UseNet && hNETDriver != NULL) {
|
||||
SysCloseLibrary(hNETDriver); hNETDriver = NULL;
|
||||
|
|
|
@ -35,6 +35,7 @@ typedef long (*GPUopen)(unsigned long *, char *, char *);
|
|||
typedef long (*SPUopen)(void);
|
||||
typedef long (*PADopen)(unsigned long *);
|
||||
typedef long (*NETopen)(unsigned long *);
|
||||
typedef long (*SIO1open)(unsigned long *);
|
||||
|
||||
#else
|
||||
|
||||
|
@ -44,6 +45,7 @@ typedef long (CALLBACK* GPUopen)(HWND);
|
|||
typedef long (CALLBACK* SPUopen)(HWND);
|
||||
typedef long (CALLBACK* PADopen)(HWND);
|
||||
typedef long (CALLBACK* NETopen)(HWND);
|
||||
typedef long (CALLBACK* SIO1open)(HWND);
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -147,8 +149,8 @@ struct SubQ {
|
|||
unsigned char AbsoluteAddress[3];
|
||||
char res1[72];
|
||||
};
|
||||
typedef long (CALLBACK* CDRreadCDDA)(unsigned char, unsigned char, unsigned char, unsigned char *);
|
||||
typedef long (CALLBACK* CDRgetTE)(unsigned char, unsigned char *, unsigned char *, unsigned char *);
|
||||
typedef long (CALLBACK* CDRreadCDDA)(unsigned char, unsigned char, unsigned char, unsigned char *);
|
||||
typedef long (CALLBACK* CDRgetTE)(unsigned char, unsigned char *, unsigned char *, unsigned char *);
|
||||
|
||||
// CD-ROM function pointers
|
||||
extern CDRinit CDR_init;
|
||||
|
@ -168,8 +170,8 @@ extern CDRgetDriveLetter CDR_getDriveLetter;
|
|||
extern CDRconfigure CDR_configure;
|
||||
extern CDRabout CDR_about;
|
||||
extern CDRsetfilename CDR_setfilename;
|
||||
extern CDRreadCDDA CDR_readCDDA;
|
||||
extern CDRgetTE CDR_getTE;
|
||||
extern CDRreadCDDA CDR_readCDDA;
|
||||
extern CDRgetTE CDR_getTE;
|
||||
|
||||
// SPU Functions
|
||||
typedef long (CALLBACK* SPUinit)(void);
|
||||
|
@ -318,6 +320,75 @@ extern NETrecvPadData NET_recvPadData;
|
|||
extern NETsetInfo NET_setInfo;
|
||||
extern NETkeypressed NET_keypressed;
|
||||
|
||||
// SIO1 Functions (link cable)
|
||||
typedef long (CALLBACK* SIO1init)(void);
|
||||
typedef long (CALLBACK* SIO1shutdown)(void);
|
||||
typedef long (CALLBACK* SIO1close)(void);
|
||||
typedef long (CALLBACK* SIO1configure)(void);
|
||||
typedef long (CALLBACK* SIO1test)(void);
|
||||
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 uint32_t (CALLBACK* SIO1readData8)(void);
|
||||
typedef uint32_t (CALLBACK* SIO1readData16)(void);
|
||||
typedef uint32_t (CALLBACK* SIO1readData32)(void);
|
||||
typedef uint32_t (CALLBACK* SIO1readStat16)(void);
|
||||
typedef uint32_t (CALLBACK* SIO1readStat32)(void);
|
||||
typedef uint32_t (CALLBACK* SIO1readMode16)(void);
|
||||
typedef uint32_t (CALLBACK* SIO1readMode32)(void);
|
||||
typedef uint32_t (CALLBACK* SIO1readCtrl16)(void);
|
||||
typedef uint32_t (CALLBACK* SIO1readCtrl32)(void);
|
||||
typedef uint32_t (CALLBACK* SIO1readBaud16)(void);
|
||||
typedef uint32_t (CALLBACK* SIO1readBaud32)(void);
|
||||
typedef void (CALLBACK* SIO1registerCallback)(void (CALLBACK *callback)(void));
|
||||
|
||||
// SIO1 function pointers
|
||||
extern SIO1init SIO1_init;
|
||||
extern SIO1shutdown SIO1_shutdown;
|
||||
extern SIO1open SIO1_open;
|
||||
extern SIO1close SIO1_close;
|
||||
extern SIO1test SIO1_test;
|
||||
extern SIO1configure SIO1_configure;
|
||||
extern SIO1about SIO1_about;
|
||||
extern SIO1pause SIO1_pause;
|
||||
extern SIO1resume SIO1_resume;
|
||||
extern SIO1keypressed SIO1_keypressed;
|
||||
extern SIO1writeData8 SIO1_writeData8;
|
||||
extern SIO1writeData16 SIO1_writeData16;
|
||||
extern SIO1writeData32 SIO1_writeData32;
|
||||
extern SIO1writeStat16 SIO1_writeStat16;
|
||||
extern SIO1writeStat32 SIO1_writeStat32;
|
||||
extern SIO1writeMode16 SIO1_writeMode16;
|
||||
extern SIO1writeMode32 SIO1_writeMode32;
|
||||
extern SIO1writeCtrl16 SIO1_writeCtrl16;
|
||||
extern SIO1writeCtrl32 SIO1_writeCtrl32;
|
||||
extern SIO1writeBaud16 SIO1_writeBaud16;
|
||||
extern SIO1writeBaud32 SIO1_writeBaud32;
|
||||
extern SIO1readData8 SIO1_readData8;
|
||||
extern SIO1readData16 SIO1_readData16;
|
||||
extern SIO1readData32 SIO1_readData32;
|
||||
extern SIO1readStat16 SIO1_readStat16;
|
||||
extern SIO1readStat32 SIO1_readStat32;
|
||||
extern SIO1readMode16 SIO1_readMode16;
|
||||
extern SIO1readMode32 SIO1_readMode32;
|
||||
extern SIO1readCtrl16 SIO1_readCtrl16;
|
||||
extern SIO1readCtrl32 SIO1_readCtrl32;
|
||||
extern SIO1readBaud16 SIO1_readBaud16;
|
||||
extern SIO1readBaud32 SIO1_readBaud32;
|
||||
extern SIO1registerCallback SIO1_registerCallback;
|
||||
|
||||
void CALLBACK clearDynarec(void);
|
||||
|
||||
void SetIsoFile(const char *filename);
|
||||
|
|
|
@ -108,6 +108,7 @@ typedef struct {
|
|||
char Pad1[MAXPATHLEN];
|
||||
char Pad2[MAXPATHLEN];
|
||||
char Net[MAXPATHLEN];
|
||||
char Sio1[MAXPATHLEN];
|
||||
char Mcd1[MAXPATHLEN];
|
||||
char Mcd2[MAXPATHLEN];
|
||||
char Bios[MAXPATHLEN];
|
||||
|
|
|
@ -41,7 +41,7 @@ u8 psxHwRead8(u32 add) {
|
|||
|
||||
switch (add) {
|
||||
case 0x1f801040: hard = sioRead8();break;
|
||||
// case 0x1f801050: hard = serial_read8(); break;//for use of serial port ignore for now
|
||||
case 0x1f801050: hard = SIO1_readData8(); break;
|
||||
case 0x1f801800: hard = cdrRead0(); break;
|
||||
case 0x1f801801: hard = cdrRead1(); break;
|
||||
case 0x1f801802: hard = cdrRead2(); break;
|
||||
|
@ -104,13 +104,18 @@ u16 psxHwRead16(u32 add) {
|
|||
PAD_LOG("sio read16 %x; ret = %x\n", add&0xf, hard);
|
||||
#endif
|
||||
return hard;
|
||||
|
||||
//Serial port stuff not support now ;P
|
||||
// case 0x1f801050: hard = serial_read16(); break;
|
||||
// case 0x1f801054: hard = serial_status_read(); break;
|
||||
// case 0x1f80105a: hard = serial_control_read(); break;
|
||||
// case 0x1f80105e: hard = serial_baud_read(); break;
|
||||
|
||||
case 0x1f801050:
|
||||
hard = SIO1_readData16();
|
||||
return hard;
|
||||
case 0x1f801054:
|
||||
hard = SIO1_readStat16();
|
||||
return hard;
|
||||
case 0x1f80105a:
|
||||
hard = SIO1_readCtrl16();
|
||||
return hard;
|
||||
case 0x1f80105e:
|
||||
hard = SIO1_readBaud16();
|
||||
return hard;
|
||||
case 0x1f801100:
|
||||
hard = psxRcntRcount(0);
|
||||
#ifdef PSXHW_LOG
|
||||
|
@ -200,8 +205,9 @@ u32 psxHwRead32(u32 add) {
|
|||
PAD_LOG("sio read32 ;ret = %x\n", hard);
|
||||
#endif
|
||||
return hard;
|
||||
|
||||
// case 0x1f801050: hard = serial_read32(); break;//serial port
|
||||
case 0x1f801050:
|
||||
hard = SIO1_readData32();
|
||||
return hard;
|
||||
#ifdef PSXHW_LOG
|
||||
case 0x1f801060:
|
||||
PSXHW_LOG("RAM size read %x\n", psxHu32(0x1060));
|
||||
|
@ -337,7 +343,7 @@ u32 psxHwRead32(u32 add) {
|
|||
void psxHwWrite8(u32 add, u8 value) {
|
||||
switch (add) {
|
||||
case 0x1f801040: sioWrite8(value); break;
|
||||
// case 0x1f801050: serial_write8(value); break;//serial port
|
||||
case 0x1f801050: SIO1_writeData8(value); break;
|
||||
case 0x1f801800: cdrWrite0(value); break;
|
||||
case 0x1f801801: cdrWrite1(value); break;
|
||||
case 0x1f801802: cdrWrite2(value); break;
|
||||
|
@ -389,13 +395,18 @@ void psxHwWrite16(u32 add, u16 value) {
|
|||
PAD_LOG ("sio write16 %x, %x\n", add&0xf, value);
|
||||
#endif
|
||||
return;
|
||||
|
||||
//serial port ;P
|
||||
// case 0x1f801050: serial_write16(value); break;
|
||||
// case 0x1f80105a: serial_control_write(value);break;
|
||||
// case 0x1f80105e: serial_baud_write(value); break;
|
||||
// case 0x1f801054: serial_status_write(value); break;
|
||||
|
||||
case 0x1f801050:
|
||||
SIO1_writeData16(value);
|
||||
return;
|
||||
case 0x1f801054:
|
||||
SIO1_writeStat16(value);
|
||||
return;
|
||||
case 0x1f80105a:
|
||||
SIO1_writeCtrl16(value);
|
||||
return;
|
||||
case 0x1f80105e:
|
||||
SIO1_writeBaud16(value);
|
||||
return;
|
||||
case 0x1f801070:
|
||||
#ifdef PSXHW_LOG
|
||||
PSXHW_LOG("IREG 16bit write %x\n", value);
|
||||
|
@ -497,7 +508,9 @@ void psxHwWrite32(u32 add, u32 value) {
|
|||
PAD_LOG("sio write32 %x\n", value);
|
||||
#endif
|
||||
return;
|
||||
// case 0x1f801050: serial_write32(value); break;//serial port
|
||||
case 0x1f801050:
|
||||
SIO1_writeData32(value);
|
||||
return;
|
||||
#ifdef PSXHW_LOG
|
||||
case 0x1f801060:
|
||||
PSXHW_LOG("RAM size write %x\n", value);
|
||||
|
|
Loading…
Reference in New Issue