inada-s / gdxsv

Mobile Suit Gundam: Federation vs. Zeon&DX Private Game Server
https://www.gdxsv.net
GNU Affero General Public License v3.0
23 stars 7 forks source link

Network module replacement (ps2) #2

Closed inada-s closed 2 years ago

inada-s commented 4 years ago

The embedded protocol stack AVE_TCP is installed as irx modules in the PS2 game.
In the original implementation, the game communicate with game server through this module.
I think it is difficult to reuse this well, so it is better to develop the replacement module using ps2sdk's tcpip and use it instead of AVE_TCP.

I have no knowledge of the irx module, so I have to start with a survey. Fortunately, the irx module in the game still has debug symbols.

In the future, it may be better to provide patches for the original game iso image.

gh0stl1ne commented 4 years ago

Do you think it is possible to create an IRX module that is able to use the broadband adapter instead of the modem? Another idea would be to reuse the modules from Monster Hunter or Gundam vs. Z-Gundam.

inada-s commented 4 years ago

Do you think it is possible to create an IRX module that is able to use the broadband adapter instead of the modem?

It is not possible to just replace the irx module. We need to patch the r5900 to skip the ppp step.

Skip modem operations (modem recognition, ppp connection).

Replace socket operations (TCP open, read, write, select, close, sockopt).

Another idea would be to reuse the modules from Monster Hunter or Gundam vs. Z-Gundam.

Yes, I think this is another approach. Gundam DX already have AVE protocol stack and network adapter drivers, so we may just need to imitate how to use them.

inada-s commented 4 years ago

The ps2 version of the game is easy to get, but unsatisfactory for fans. Perhaps it would be better to make the DC version playable on a emulator. So it's better to think about which version to use for playing before replacing the network module.

vkedwardli commented 4 years ago

From my investigation, as long as we can emulate the correct server response, it is better to use https://github.com/flyinghead/flycast with the DC version.

Attached is the MODEM log (I've added the modem reg write log myself)

D[MODEM]: ModemNormalWrite : TBUFFER = 1
I[MODEM]: MODEM Dialing
D[MODEM]: modem reg 010 write 1
D[MODEM]: ModemNormalWrite : TBUFFER = 8
D[MODEM]: modem reg 010 write 8
D[MODEM]: ModemNormalWrite : TBUFFER = 6
D[MODEM]: modem reg 010 write 6
D[MODEM]: Stats sent 0 (0.00 kB/s) received 0 (0.00 kB/s) TDBE 1 RDBF 0
D[MODEM]: Switching to RINGING state
D[MODEM]:        *** RINGING STATE ***
D[MODEM]: modem reg 010 write 0
D[MODEM]: modem reg 010 write 0
D[MODEM]: modem reg 010 write 5
D[MODEM]: modem reg 010 write 3
D[MODEM]: modem reg 010 write 6
D[MODEM]: modem reg 010 write 3
D[MODEM]: modem reg 010 write 1
D[MODEM]: modem reg 010 write 3
D[MODEM]: modem reg 010 write 1
D[MODEM]: modem reg 010 write 2
D[MODEM]: modem reg 010 write 0
D[MODEM]: modem reg 010 write 3
D[MODEM]: modem reg 001 write 40
D[MODEM]: modem reg 01D write A 
D[MODEM]: modem reg 01D write A 
D[MODEM]: modem reg 01D write 2A 
D[MODEM]: modem reg 01C write A1 
D[MODEM]: modem reg 018 write C2 
D[MODEM]: modem reg 019 write 8 
D[MODEM]: DSP mem Write (w) address 00000aa1 = 8c2

When the modem is going into the ringing state, it reads + dial the number from the 010 register.

So the DC version is using the MODEM to dial to 186-0053-63-13-1203, which matches the KDDI ISDN回線, also according to the KDDI call menu0053-63 is out of service.

From the PS2 MIPS code, I also found the game is dialing to a very similar number: 186-0053-63-13-1202

Finally the below is the full modem log, you can find that the game instructed the modem to dial a number, handshake correctly and the connection is established successfully. (all by modem emulation, no connection is made actually) Then the game is waiting for the initial data from the server, timed out, and close the connection (reset the modem)

 hw/modem/modem.cpp:431 D[MODEM]: Modem reset start ...
 hw/modem/modem.cpp:440 I[MODEM]: MODEM Reset
 hw/modem/modem.cpp:374 D[MODEM]: DSPTestStart
 hw/modem/modem.cpp:367 D[MODEM]: DSPTestEnd
 hw/modem/modem.cpp:431 D[MODEM]: Modem reset start ...
 hw/modem/modem.cpp:440 I[MODEM]: MODEM Reset
 hw/modem/modem.cpp:144 D[MODEM]: Stats sent 0 (0.00 kB/s) received 0 (0.00 kB/s) TDBE 0 RDBF 0
 hw/modem/modem.cpp:374 D[MODEM]: DSPTestStart
 hw/modem/modem.cpp:367 D[MODEM]: DSPTestEnd
 hw/modem/modem.cpp:431 D[MODEM]: Modem reset start ...
 hw/modem/modem.cpp:440 I[MODEM]: MODEM Reset
 hw/modem/modem.cpp:374 D[MODEM]: DSPTestStart
 hw/modem/modem.cpp:367 D[MODEM]: DSPTestEnd
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 000006a9 = 7
 hw/modem/modem.cpp:624 D[MODEM]: NEWC CONF=76
 hw/modem/modem.cpp:603 D[MODEM]: DSP mem Read address 0000009f == 0
 hw/modem/modem.cpp:603 D[MODEM]: DSP mem Read address 0000009f == 0
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 0000010f = 0
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 0000021e = 1
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 0000021f = d2
 hw/modem/modem.cpp:431 D[MODEM]: Modem reset start ...
 hw/modem/modem.cpp:440 I[MODEM]: MODEM Reset
 hw/modem/modem.cpp:144 D[MODEM]: Stats sent 0 (0.00 kB/s) received 0 (0.00 kB/s) TDBE 0 RDBF 0
 hw/modem/modem.cpp:374 D[MODEM]: DSPTestStart
 hw/modem/modem.cpp:367 D[MODEM]: DSPTestEnd
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 000006a9 = 7
 hw/modem/modem.cpp:624 D[MODEM]: NEWC CONF=76
 hw/modem/modem.cpp:603 D[MODEM]: DSP mem Read address 0000009f == 0
 hw/modem/modem.cpp:603 D[MODEM]: DSP mem Read address 0000009f == 0
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 0000010f = 0
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 0000021e = 1
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 0000021f = d2
 hw/modem/modem.cpp:431 D[MODEM]: Modem reset start ...
 hw/modem/modem.cpp:440 I[MODEM]: MODEM Reset
 hw/modem/modem.cpp:144 D[MODEM]: Stats sent 0 (0.00 kB/s) received 0 (0.00 kB/s) TDBE 0 RDBF 0
 hw/modem/modem.cpp:374 D[MODEM]: DSPTestStart
 hw/modem/modem.cpp:367 D[MODEM]: DSPTestEnd
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 000006a9 = 7
 hw/modem/modem.cpp:624 D[MODEM]: NEWC CONF=76
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000aa1 = 8c2
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000aa2 = ee7c
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000aa3 = 8c2
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000aa4 = c774
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000aa5 = 74fe
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000ba1 = 8c2
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000ba2 = 1184
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000ba3 = 8c2
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000ba4 = cd4f
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000ba5 = 6495
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000ba0 = 7b30
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000aa0 = 4cf
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000ab8 = 500
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000bb8 = 500
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000aa7 = 205
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000aa8 = fbf9
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000aa9 = 206
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000aaa = c147
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000aab = d22d
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000ba7 = 205
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000ba8 = 380
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000ba9 = 206
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000baa = c147
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000bab = d1f8
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000ba6 = 7e67
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000aa6 = 2df
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000ab9 = 2a00
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000bb9 = 1c00
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000ab2 = 0
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000ab3 = 0
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000ab4 = 7fff
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000ab5 = 0
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000ab6 = 0
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000bb2 = 0
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000bb3 = 0
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000bb4 = 7fff
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000bb5 = 0
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000bb6 = 0
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000aad = 244
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000aae = fb7b
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000aaf = 245
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000ab0 = c147
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000ab1 = 35a7
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000bad = 244
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000bae = ca
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000baf = 245
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000bb0 = c147
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000bb1 = 3574
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000bac = 7e67
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000aac = 2df
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000aba = 2a00
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000bba = 1c00
 hw/modem/modem.cpp:624 D[MODEM]: NEWC CONF=76
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 0000029b = 11b2
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 0000029c = 11
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 0000029d = 1648
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 0000029e = 16
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 00000218 = ed
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 000002db = 0
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 00000219 = ed
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 000002dc = 0
 hw/modem/modem.cpp:624 D[MODEM]: NEWC CONF=81
 hw/modem/modem.cpp:624 D[MODEM]: NEWC CONF=81
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 0000029b = 11b2
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 0000029c = 11
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 0000029d = 1648
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 0000029e = 16
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 00000218 = ed
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 000002db = 0
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 00000219 = ed
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 000002dc = 0
 hw/modem/modem.cpp:504 D[MODEM]: ModemNormalWrite : TBUFFER = 1
 hw/modem/modem.cpp:507 I[MODEM]: MODEM Dialing
 hw/modem/modem.cpp:504 D[MODEM]: ModemNormalWrite : TBUFFER = 8
 hw/modem/modem.cpp:504 D[MODEM]: ModemNormalWrite : TBUFFER = 6
 hw/modem/modem.cpp:144 D[MODEM]: Stats sent 0 (0.00 kB/s) received 0 (0.00 kB/s) TDBE 1 RDBF 0
 hw/modem/modem.cpp:172 D[MODEM]: Switching to RINGING state
 hw/modem/modem.cpp:186 D[MODEM]:        *** RINGING STATE ***
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000aa1 = 8c2
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000aa2 = ee7c
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000aa3 = 8c2
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000aa4 = c774
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000aa5 = 74fe
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000ba1 = 8c2
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000ba2 = 1184
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000ba3 = 8c2
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000ba4 = cd4f
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000ba5 = 6495
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000ba0 = 7b30
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000aa0 = 4cf
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000ab8 = 200
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000bb8 = 200
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000aa7 = 205
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000aa8 = fbf9
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000aa9 = 206
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000aaa = c147
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000aab = d22d
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000ba7 = 205
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000ba8 = 380
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000ba9 = 206
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000baa = c147
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000bab = d1f8
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000ba6 = 7e67
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000aa6 = 2df
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000ab9 = 2a00
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000bb9 = 1c00
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000ab2 = 0
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000ab3 = 0
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000ab4 = 7fff
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000ab5 = 0
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000ab6 = 0
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000bb2 = 0
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000bb3 = 0
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000bb4 = 7fff
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000bb5 = 0
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000bb6 = 0
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000aad = 244
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000aae = fb7b
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000aaf = 245
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000ab0 = c147
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000ab1 = 35a7
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000bad = 244
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000bae = ca
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000baf = 245
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000bb0 = c147
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000bb1 = 3574
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000bac = 7e67
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000aac = 2df
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000aba = 2a00
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 00000bba = 1c00
 hw/modem/modem.cpp:603 D[MODEM]: DSP mem Read address 00000305 == 4028
 hw/modem/modem.cpp:603 D[MODEM]: DSP mem Read address 00000304 == 28c0
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 00000306 = 2840
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 00000307 = 2803
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 00000308 = 2884
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 00000304 = 28c0
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 00000305 = 2828
 hw/modem/modem.cpp:603 D[MODEM]: DSP mem Read address 0000013f == 0
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 0000013f = 40
 hw/modem/modem.cpp:603 D[MODEM]: DSP mem Read address 00000100 == 0
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 00000100 = 0
 hw/modem/modem.cpp:603 D[MODEM]: DSP mem Read address 00000105 == 0
 hw/modem/modem.cpp:603 D[MODEM]: DSP mem Read address 00000101 == 0
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 00000105 = f0
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 00000101 = 38
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 000002c4 = 99
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 000002c5 = 9
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 000002c6 = 99
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 000002c7 = 9
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 000002c0 = 99
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 000002c1 = 9
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 000002c2 = 99
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 000002c3 = 9
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 00000309 = ce
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 00000382 = e0
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 00000383 = 3f
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 00000304 = c8
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 000006a3 = 0
 hw/modem/modem.cpp:624 D[MODEM]: NEWC CONF=aa
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write (w) address 000003da = 4000
 hw/modem/modem.cpp:624 D[MODEM]: NEWC CONF=aa
 hw/modem/modem.cpp:603 D[MODEM]: DSP mem Read address 00000304 == 28c8
 hw/modem/modem.cpp:603 D[MODEM]: DSP mem Read address 000003a5 == 0
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 000003a5 = 10
 hw/modem/modem.cpp:450 D[MODEM]: DTR asserted. starting handshaking
 hw/modem/modem.cpp:490 D[MODEM]: TPDM = 0 ASYN = 0
 hw/modem/modem.cpp:603 D[MODEM]: DSP mem Read address 0000010d == 0
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 0000010d = 8
 hw/modem/modem.cpp:144 D[MODEM]: Stats sent 0 (0.00 kB/s) received 0 (0.00 kB/s) TDBE 1 RDBF 0
 hw/modem/modem.cpp:195 D[MODEM]:        *** HANDSHAKING STATE ***
 hw/modem/modem.cpp:211 I[MODEM]: MODEM Connected
 hw/modem/modem.cpp:281 D[MODEM]: modem_regs 00 == 00
 hw/modem/modem.cpp:281 D[MODEM]: modem_regs 01 == 40
 hw/modem/modem.cpp:281 D[MODEM]: modem_regs 02 == 41
 hw/modem/modem.cpp:281 D[MODEM]: modem_regs 03 == 10
 hw/modem/modem.cpp:281 D[MODEM]: modem_regs 04 == 00
 hw/modem/modem.cpp:281 D[MODEM]: modem_regs 05 == 08
 hw/modem/modem.cpp:281 D[MODEM]: modem_regs 06 == 00
2020-03-16 18:14:01.364453+0800 Flycast[6447:5796323] hw/modem/picoppp.cpp:716 I[MODEM]: pico_thread_func: fuck
 hw/modem/modem.cpp:281 D[MODEM]: modem_regs 07 == 82
 hw/modem/modem.cpp:281 D[MODEM]: modem_regs 08 == 01
 hw/modem/modem.cpp:281 D[MODEM]: modem_regs 09 == 35
 hw/modem/modem.cpp:281 D[MODEM]: modem_regs 0a == 00
 hw/modem/modem.cpp:281 D[MODEM]: modem_regs 0b == 00
 hw/modem/modem.cpp:281 D[MODEM]: modem_regs 0c == 00
 hw/modem/modem.cpp:281 D[MODEM]: modem_regs 0d == 02
 hw/modem/modem.cpp:281 D[MODEM]: modem_regs 0e == 02
 hw/modem/modem.cpp:281 D[MODEM]: modem_regs 0f == d0
 hw/modem/modem.cpp:281 D[MODEM]: modem_regs 10 == 03
 hw/modem/modem.cpp:281 D[MODEM]: modem_regs 11 == 00
 hw/modem/modem.cpp:281 D[MODEM]: modem_regs 12 == a1
 hw/modem/modem.cpp:281 D[MODEM]: modem_regs 13 == 79
 hw/modem/modem.cpp:281 D[MODEM]: modem_regs 14 == 00
 hw/modem/modem.cpp:281 D[MODEM]: modem_regs 15 == 31
 hw/modem/modem.cpp:281 D[MODEM]: modem_regs 16 == 74
 hw/modem/modem.cpp:281 D[MODEM]: modem_regs 17 == ff
 hw/modem/modem.cpp:281 D[MODEM]: modem_regs 18 == 08
 hw/modem/modem.cpp:281 D[MODEM]: modem_regs 19 == 00
 hw/modem/modem.cpp:281 D[MODEM]: modem_regs 1a == 00
 hw/modem/modem.cpp:281 D[MODEM]: modem_regs 1b == 00
 hw/modem/modem.cpp:281 D[MODEM]: modem_regs 1c == 0d
 hw/modem/modem.cpp:281 D[MODEM]: modem_regs 1d == 01
 hw/modem/modem.cpp:281 D[MODEM]: modem_regs 1e == 08
 hw/modem/modem.cpp:281 D[MODEM]: modem_regs 1f == 08
 hw/modem/modem.cpp:281 D[MODEM]: modem_regs 20 == 00
2020-03-16 18:14:01.441888+0800 Flycast[6447:5796323] hw/modem/picoppp.cpp:643 I[MODEM]: My IP is XXX.XX.XXX.XXX
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 0000026b = 20
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 0000026c = 64
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 0000026d = 60
 hw/modem/modem.cpp:603 D[MODEM]: DSP mem Read address 00000302 == e0d8
 hw/modem/modem.cpp:603 D[MODEM]: DSP mem Read address 00000303 == c8e0
 hw/modem/modem.cpp:603 D[MODEM]: DSP mem Read address 0000009f == 0
 hw/modem/modem.cpp:431 D[MODEM]: Modem reset start ...
 hw/modem/modem.cpp:440 I[MODEM]: MODEM Reset
 hw/modem/modem.cpp:374 D[MODEM]: DSPTestStart
 hw/modem/modem.cpp:367 D[MODEM]: DSPTestEnd
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 0000010f = 0
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 0000021e = 1
 hw/modem/modem.cpp:583 D[MODEM]: DSP mem Write address 0000021f = d2
 hw/modem/modem.cpp:431 D[MODEM]: Modem reset start ...
inada-s commented 4 years ago

thanks for good investigation! In the ps2 version, there was a big problem with connection in the battle scene, so I was thinking about what to do. I will also investigate the dc version.

inada-s commented 4 years ago

The ppp code seems to be disabled in the MSVC environment on Windows. In what environment did you debug?

inada-s commented 2 years ago

I decided not to fix this issue.