@@ -54,11 +54,27 @@ uint8_t PCSX::HW::psxHwRead8(uint32_t add) {
5454 case 0x1f801040 :
5555 hard = PCSX ::g_emulator->m_sio ->sioRead8 ();
5656 break ;
57- #ifdef ENABLE_SIO1API
58- case 0x1f801050 :
59- hard = SIO1_readData8 ();
57+ case 0x1f801050 : // rx/tx data register
58+ hard = PCSX ::g_emulator->m_sio1 ->readData8 ();
59+ SIO1_LOG (" SIO1.DATA read8 %x; ret = %x\n " , add & 0xf , hard);
60+ break ;
61+ case 0x1f801054 : // stat register
62+ hard = PCSX ::g_emulator->m_sio1 ->readStat8 ();
63+ // Log command below is overly spammy
64+ // SIO1_LOG("SIO1.STAT read8 %x; ret = %x\n", add & 0xf, 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);
6077 break ;
61- #endif
6278 case 0x1f801800 :
6379 hard = PCSX ::g_emulator->m_cdrom ->read0 ();
6480 break ;
@@ -127,35 +143,36 @@ uint16_t PCSX::HW::psxHwRead16(uint32_t add) {
127143 hard = PCSX ::g_emulator->m_sio ->readBaud16 ();
128144 SIO0_LOG (" sio read16 %x; ret = %x\n " , add & 0xf , hard);
129145 return hard;
130- #ifdef ENABLE_SIO1API
131- case 0x1f801050 :
132- hard = SIO1_readData16 ();
133- SIO1_LOG (" sio1 read16 %x; ret = %x\n " , add & 0xf , hard);
146+ case 0x1f801050 : // rx/tx data register
147+ hard = PCSX ::g_emulator->m_sio1 ->readData16 ();
148+ SIO1_LOG (" SIO1.DATA read16 %x; ret = %x\n " , add & 0xf , hard);
134149 return hard;
135- case 0x1f801054 :
136- hard = SIO1_readStat16 ();
137- SIO1_LOG (" sio1 read16 %x; ret = %x\n " , add & 0xf , hard);
150+ case 0x1f801054 : // stat register
151+ hard = PCSX ::g_emulator->m_sio1 ->readStat16 ();
152+ // Log command below is overly spammy
153+ // SIO1_LOG("SIO1.STAT read16 %x; ret = %x\n", add & 0xf, hard);
138154 return hard;
139- case 0x1f801058 :
140- hard = SIO1_readMode16 ();
141- SIO1_LOG (" sio1 read16 %x; ret = %x\n " , add & 0xf , hard);
155+ case 0x1f801058 : // mode register
156+ hard = PCSX ::g_emulator-> m_sio1 -> readMode16 ();
157+ SIO1_LOG (" SIO1.MODE read16 %x; ret = %x\n " , add & 0xf , hard);
142158 return hard;
143- case 0x1f80105a :
144- hard = SIO1_readCtrl16 ();
145- SIO1_LOG (" sio1 read16 %x; ret = %x\n " , add & 0xf , hard);
159+ case 0x1f80105a : // control register
160+ hard = PCSX ::g_emulator-> m_sio1 -> readCtrl16 ();
161+ SIO1_LOG (" SIO1.CTRL read16 %x; ret = %x\n " , add & 0xf , hard);
146162 return hard;
147- case 0x1f80105e :
148- hard = SIO1_readBaud16 ();
149- SIO1_LOG (" sio1 read16 %x; ret = %x\n " , add & 0xf , hard);
163+ case 0x1f80105e : // baudrate register
164+ hard = PCSX ::g_emulator-> m_sio1 -> readBaud16 ();
165+ SIO1_LOG (" SIO1.BAUD read16 %x; ret = %x\n " , add & 0xf , hard);
150166 return hard;
151- #else
152167 /* Fixes Armored Core misdetecting the Link cable being detected.
153168 * We want to turn that thing off and force it to do local multiplayer instead.
154169 * Thanks Sony for the fix, they fixed it in their PS Classic fork.
155170 */
171+ /* Stat's value set in SIO1/m_sio1, Armored Core local multiplayer is working.
156172 case 0x1f801054:
157173 return 0x80;
158- #endif
174+ */
175+
159176 case 0x1f801100 :
160177 hard = PCSX ::g_emulator->m_psxCounters ->psxRcntRcount (0 );
161178 PSXHW_LOG (" T0 count read16: %x\n " , hard);
@@ -228,12 +245,15 @@ uint32_t PCSX::HW::psxHwRead32(uint32_t add) {
228245 hard |= PCSX ::g_emulator->m_sio ->sioRead8 () << 24 ;
229246 SIO0_LOG (" sio read32 ;ret = %x\n " , hard);
230247 return hard;
231- #ifdef ENABLE_SIO1API
232- case 0x1f801050 :
233- hard = SIO1_readData32 ();
234- SIO1_LOG (" sio1 read32 ;ret = %x\n " , hard);
248+ case 0x1f801050 : // rx/tx data register
249+ hard = PCSX ::g_emulator->m_sio1 ->readData32 ();
250+ SIO1_LOG (" SIO1.DATA read32 ;ret = %x\n " , hard);
251+ 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);
235256 return hard;
236- #endif
237257 case 0x1f801060 :
238258 PSXHW_LOG (" RAM size read %x\n " , psxHu32 (0x1060 ));
239259 return psxHu32 (0x1060 );
@@ -341,11 +361,26 @@ void PCSX::HW::psxHwWrite8(uint32_t add, uint8_t value) {
341361 case 0x1f801040 :
342362 PCSX ::g_emulator->m_sio ->write8 (value);
343363 break ;
344- #ifdef ENABLE_SIO1API
345- case 0x1f801050 :
346- SIO1_writeData8 (value);
364+ case 0x1f801050 : // rx/tx data register
365+ PCSX ::g_emulator->m_sio1 ->writeData8 (value);
366+ SIO1_LOG (" SIO1.DATA write8 %x; ret = %x\n " , add & 0xf , value);
367+ break ;
368+ case 0x1f801054 : // stat register
369+ PCSX ::g_emulator->m_sio1 ->writeStat8 (value);
370+ SIO1_LOG (" SIO1.STAT write8 %x; ret = %x\n " , add & 0xf , value);
371+ 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);
347383 break ;
348- #endif
349384 case 0x1f801800 :
350385 PCSX ::g_emulator->m_cdrom ->write0 (value);
351386 break ;
@@ -403,28 +438,26 @@ void PCSX::HW::psxHwWrite16(uint32_t add, uint16_t value) {
403438 PCSX ::g_emulator->m_sio ->writeBaud16 (value);
404439 SIO0_LOG (" sio write16 %x, %x\n " , add & 0xf , value);
405440 return ;
406- #ifdef ENABLE_SIO1API
407- case 0x1f801050 :
408- SIO1_writeData16 (value);
409- SIO1_LOG (" sio1 write16 %x, %x\n " , add & 0xf , value);
441+ case 0x1f801050 : // rx/tx data register
442+ PCSX ::g_emulator->m_sio1 ->writeData16 (value);
443+ SIO1_LOG (" SIO1.DATA write16 %x, %x\n " , add & 0xf , value);
410444 return ;
411- case 0x1f801054 :
412- SIO1_writeStat16 (value);
413- SIO1_LOG (" sio1 write16 %x, %x\n " , add & 0xf , value);
445+ case 0x1f801054 : // stat register
446+ PCSX ::g_emulator-> m_sio1 -> writeStat16 (value);
447+ SIO1_LOG (" SIO1.STAT write16 %x, %x\n " , add & 0xf , value);
414448 return ;
415- case 0x1f801058 :
416- SIO1_writeMode16 (value);
417- SIO1_LOG (" sio1 write16 %x, %x\n " , add & 0xf , value);
449+ case 0x1f801058 : // mode register
450+ PCSX ::g_emulator-> m_sio1 -> writeMode16 (value);
451+ SIO1_LOG (" SIO1.MODE write16 %x, %x\n " , add & 0xf , value);
418452 return ;
419- case 0x1f80105a :
420- SIO1_writeCtrl16 (value);
421- SIO1_LOG (" sio1 write16 %x, %x\n " , add & 0xf , value);
453+ case 0x1f80105a : // control register
454+ PCSX ::g_emulator-> m_sio1 -> writeCtrl16 (value);
455+ SIO1_LOG (" SIO1.CTRL write16 %x, %x\n " , add & 0xf , value);
422456 return ;
423- case 0x1f80105e :
424- SIO1_writeBaud16 (value);
425- SIO1_LOG (" sio1 write16 %x, %x\n " , add & 0xf , value);
457+ case 0x1f80105e : // baudrate register
458+ PCSX ::g_emulator-> m_sio1 -> writeBaud16 (value);
459+ SIO1_LOG (" SIO1.BAUD write16 %x, %x\n " , add & 0xf , value);
426460 return ;
427- #endif
428461 case 0x1f801070 :
429462 PSXHW_LOG (" IREG 16bit write %x\n " , value);
430463 if (PCSX ::g_emulator->settings .get <PCSX ::Emulator::SettingSpuIrq>())
@@ -533,12 +566,14 @@ void PCSX::HW::psxHwWrite32(uint32_t add, uint32_t value) {
533566 PCSX ::g_emulator->m_sio ->write8 ((unsigned char )((value & 0xff ) >> 24 ));
534567 SIO0_LOG (" sio write32 %x\n " , value);
535568 return ;
536- #ifdef ENABLE_SIO1API
537569 case 0x1f801050 :
538- SIO1_writeData32 (value);
539- SIO1_LOG (" sio1 write32 %x\n " , value);
570+ PCSX ::g_emulator->m_sio1 ->writeData32 (value);
571+ SIO1_LOG (" SIO1.DATA write32 %x\n " , value);
572+ return ;
573+ case 0x1f801054 :
574+ PCSX ::g_emulator->m_sio1 ->writeStat32 (value);
575+ SIO1_LOG (" SIO1.STAT write32 %x\n " , value);
540576 return ;
541- #endif
542577 case 0x1f801060 :
543578 PSXHW_LOG (" RAM size write %x\n " , value);
544579 psxHu32ref (add) = SWAP_LEu32 (value);
0 commit comments