@@ -54,14 +54,27 @@ uint8_t PCSX::HW::psxHwRead8(uint32_t add) {
5454 case 0x1f801040 :
5555 hard = PCSX ::g_emulator->m_sio ->sioRead8 ();
5656 break ;
57- case 0x1f801050 :
57+ case 0x1f801050 : // rx/tx data register
5858 hard = PCSX ::g_emulator->m_sio1 ->readData8 ();
5959 SIO1_LOG (" SIO1.DATA read8 %x; ret = %x\n " , add & 0xf , hard);
6060 break ;
61- case 0x1f801054 :
61+ case 0x1f801054 : // stat register
6262 hard = PCSX ::g_emulator->m_sio1 ->readStat8 ();
63+ // Log command below is overly spammy
6364 // SIO1_LOG("SIO1.STAT read8 %x; ret = %x\n", add & 0xf, hard);
64- return hard;
65+ break ;
66+ case 0x1f801058 : // mode register
67+ hard = PCSX ::g_emulator->m_sio1 ->readMode8 ();
68+ SIO1_LOG (" SIO1.MODE read8 %x; ret = %x\n " , add & 0xf , hard);
69+ break ;
70+ case 0x1f80105a : // control register
71+ hard = PCSX ::g_emulator->m_sio1 ->readCtrl8 ();
72+ SIO1_LOG (" SIO1.CTRL read8 %x; ret = %x\n " , add & 0xf , hard);
73+ break ;
74+ case 0x1f80105e : // baudrate register
75+ hard = PCSX ::g_emulator->m_sio1 ->readBaud8 ();
76+ SIO1_LOG (" SIO1.BAUD read8 %x; ret = %x\n " , add & 0xf , hard);
77+ break ;
6578 case 0x1f801800 :
6679 hard = PCSX ::g_emulator->m_cdrom ->read0 ();
6780 break ;
@@ -130,23 +143,24 @@ uint16_t PCSX::HW::psxHwRead16(uint32_t add) {
130143 hard = PCSX ::g_emulator->m_sio ->readBaud16 ();
131144 SIO0_LOG (" sio read16 %x; ret = %x\n " , add & 0xf , hard);
132145 return hard;
133- case 0x1f801050 :
146+ case 0x1f801050 : // rx/tx data register
134147 hard = PCSX ::g_emulator->m_sio1 ->readData16 ();
135148 SIO1_LOG (" SIO1.DATA read16 %x; ret = %x\n " , add & 0xf , hard);
136149 return hard;
137- case 0x1f801054 :
150+ case 0x1f801054 : // stat register
138151 hard = PCSX ::g_emulator->m_sio1 ->readStat16 ();
139- SIO1_LOG (" SIO1.STAT read16 %x; ret = %x\n " , add & 0xf , hard);
152+ // Log command below is overly spammy
153+ // SIO1_LOG("SIO1.STAT read16 %x; ret = %x\n", add & 0xf, hard);
140154 return hard;
141- case 0x1f801058 :
155+ case 0x1f801058 : // mode register
142156 hard = PCSX ::g_emulator->m_sio1 ->readMode16 ();
143157 SIO1_LOG (" SIO1.MODE read16 %x; ret = %x\n " , add & 0xf , hard);
144158 return hard;
145- case 0x1f80105a :
159+ case 0x1f80105a : // control register
146160 hard = PCSX ::g_emulator->m_sio1 ->readCtrl16 ();
147161 SIO1_LOG (" SIO1.CTRL read16 %x; ret = %x\n " , add & 0xf , hard);
148162 return hard;
149- case 0x1f80105e :
163+ case 0x1f80105e : // baudrate register
150164 hard = PCSX ::g_emulator->m_sio1 ->readBaud16 ();
151165 SIO1_LOG (" SIO1.BAUD read16 %x; ret = %x\n " , add & 0xf , hard);
152166 return hard;
@@ -231,10 +245,15 @@ uint32_t PCSX::HW::psxHwRead32(uint32_t add) {
231245 hard |= PCSX ::g_emulator->m_sio ->sioRead8 () << 24 ;
232246 SIO0_LOG (" sio read32 ;ret = %x\n " , hard);
233247 return hard;
234- case 0x1f801050 :
248+ case 0x1f801050 : // rx/tx data register
235249 hard = PCSX ::g_emulator->m_sio1 ->readData32 ();
236250 SIO1_LOG (" SIO1.DATA read32 ;ret = %x\n " , hard);
237251 return hard;
252+ case 0x1f801054 : // stat register
253+ hard = PCSX ::g_emulator->m_sio1 ->readStat32 ();
254+ // Log command below is overly spammy
255+ // SIO1_LOG("SIO1.STAT read32 ;ret = %x\n", hard);
256+ return hard;
238257 case 0x1f801060 :
239258 PSXHW_LOG (" RAM size read %x\n " , psxHu32 (0x1060 ));
240259 return psxHu32 (0x1060 );
@@ -350,6 +369,18 @@ void PCSX::HW::psxHwWrite8(uint32_t add, uint8_t value) {
350369 PCSX ::g_emulator->m_sio1 ->writeStat8 (value);
351370 SIO1_LOG (" SIO1.STAT write8 %x; ret = %x\n " , add & 0xf , value);
352371 break ;
372+ case 0x1f801058 : // mode register
373+ PCSX ::g_emulator->m_sio1 ->writeMode8 (value);
374+ SIO1_LOG (" SIO1.MODE write8 %x; ret = %x\n " , add & 0xf , value);
375+ break ;
376+ case 0x1f80105a : // control register
377+ PCSX ::g_emulator->m_sio1 ->writeCtrl8 (value);
378+ SIO1_LOG (" SIO1.CTRL write8 %x; ret = %x\n " , add & 0xf , value);
379+ break ;
380+ case 0x1f80105e : // baudrate register
381+ PCSX ::g_emulator->m_sio1 ->writeBaud8 (value);
382+ SIO1_LOG (" SIO1.Baud write8 %x; ret = %x\n " , add & 0xf , value);
383+ break ;
353384 case 0x1f801800 :
354385 PCSX ::g_emulator->m_cdrom ->write0 (value);
355386 break ;
@@ -539,6 +570,10 @@ void PCSX::HW::psxHwWrite32(uint32_t add, uint32_t value) {
539570 PCSX ::g_emulator->m_sio1 ->writeData32 (value);
540571 SIO1_LOG (" SIO1.DATA write32 %x\n " , value);
541572 return ;
573+ case 0x1f801054 :
574+ PCSX ::g_emulator->m_sio1 ->writeStat32 (value);
575+ SIO1_LOG (" SIO1.STAT write32 %x\n " , value);
576+ return ;
542577 case 0x1f801060 :
543578 PSXHW_LOG (" RAM size write %x\n " , value);
544579 psxHu32ref (add) = SWAP_LEu32 (value);
0 commit comments