@@ -54,11 +54,27 @@ uint8_t PCSX::HW::psxHwRead8(uint32_t add) {
54
54
case 0x1f801040 :
55
55
hard = PCSX::g_emulator->m_sio ->sioRead8 ();
56
56
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);
60
77
break ;
61
- #endif
62
78
case 0x1f801800 :
63
79
hard = PCSX::g_emulator->m_cdrom ->read0 ();
64
80
break ;
@@ -127,35 +143,36 @@ uint16_t PCSX::HW::psxHwRead16(uint32_t add) {
127
143
hard = PCSX::g_emulator->m_sio ->readBaud16 ();
128
144
SIO0_LOG (" sio read16 %x; ret = %x\n " , add & 0xf , hard);
129
145
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);
134
149
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);
138
154
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);
142
158
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);
146
162
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);
150
166
return hard;
151
- #else
152
167
/* Fixes Armored Core misdetecting the Link cable being detected.
153
168
* We want to turn that thing off and force it to do local multiplayer instead.
154
169
* Thanks Sony for the fix, they fixed it in their PS Classic fork.
155
170
*/
171
+ /* Stat's value set in SIO1/m_sio1, Armored Core local multiplayer is working.
156
172
case 0x1f801054:
157
173
return 0x80;
158
- #endif
174
+ */
175
+
159
176
case 0x1f801100 :
160
177
hard = PCSX::g_emulator->m_psxCounters ->psxRcntRcount (0 );
161
178
PSXHW_LOG (" T0 count read16: %x\n " , hard);
@@ -228,12 +245,15 @@ uint32_t PCSX::HW::psxHwRead32(uint32_t add) {
228
245
hard |= PCSX::g_emulator->m_sio ->sioRead8 () << 24 ;
229
246
SIO0_LOG (" sio read32 ;ret = %x\n " , hard);
230
247
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);
235
256
return hard;
236
- #endif
237
257
case 0x1f801060 :
238
258
PSXHW_LOG (" RAM size read %x\n " , psxHu32 (0x1060 ));
239
259
return psxHu32 (0x1060 );
@@ -341,11 +361,26 @@ void PCSX::HW::psxHwWrite8(uint32_t add, uint8_t value) {
341
361
case 0x1f801040 :
342
362
PCSX::g_emulator->m_sio ->write8 (value);
343
363
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);
347
383
break ;
348
- #endif
349
384
case 0x1f801800 :
350
385
PCSX::g_emulator->m_cdrom ->write0 (value);
351
386
break ;
@@ -403,28 +438,26 @@ void PCSX::HW::psxHwWrite16(uint32_t add, uint16_t value) {
403
438
PCSX::g_emulator->m_sio ->writeBaud16 (value);
404
439
SIO0_LOG (" sio write16 %x, %x\n " , add & 0xf , value);
405
440
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);
410
444
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);
414
448
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);
418
452
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);
422
456
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);
426
460
return ;
427
- #endif
428
461
case 0x1f801070 :
429
462
PSXHW_LOG (" IREG 16bit write %x\n " , value);
430
463
if (PCSX::g_emulator->settings .get <PCSX::Emulator::SettingSpuIrq>())
@@ -533,12 +566,14 @@ void PCSX::HW::psxHwWrite32(uint32_t add, uint32_t value) {
533
566
PCSX::g_emulator->m_sio ->write8 ((unsigned char )((value & 0xff ) >> 24 ));
534
567
SIO0_LOG (" sio write32 %x\n " , value);
535
568
return ;
536
- #ifdef ENABLE_SIO1API
537
569
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);
540
576
return ;
541
- #endif
542
577
case 0x1f801060 :
543
578
PSXHW_LOG (" RAM size write %x\n " , value);
544
579
psxHu32ref (add) = SWAP_LEu32 (value);
0 commit comments