So for example requesting get memory usually doesn't respond right away so if any requests don't get returned within 10 frames (at 60 fps) I send a ping and eventually I get a response.
When doing step commands I would expect to get a stopped response but only get a resume response, occasionally it steps two steps, sometimes no steps.
It is possible I'm doing something wrong but it works well enough that I don't think so. Here is a log of an exchange where it connects, stops, steps a little. Pings are only sent when a response was expected and didn't happen. The request IDs are shown so the events can be followed. The early debugger is here if it helps (linux build in slow progress, this is for windows) https://drive.google.com/file/d/1bE3ARu_WytRAAimveNyXvJqabcFCpcWS/view?usp=sharing
Send cmd: $31 (RegistersGet) ReqID: 1000 len: 0c / 0c
Got resp: $31 (RegistersGet) ReqID:ffffffff
PC=$e5d1 A=$00 X=$00 Y=$0a SP=$f3 00=$2f 01=$37 FL=$22 LIN=$0000 CYC=$0000
Got resp: $62 (Stopped) ReqID:ffffffff
Stop/Resume PC=$e5d1
Got resp: $31 (RegistersGet) ReqID:1000
PC=$e5d1 A=$00 X=$00 Y=$0a SP=$f3 00=$2f 01=$37 FL=$22 LIN=$0000 CYC=$0000
Requested VICE Memory $0400-$05ca
Send cmd: $01 (MemGet) ReqID: 1001 len: 13 / 13
Requested VICE Memory $ea31-$ea4b
Send cmd: $01 (MemGet) ReqID: 1002 len: 13 / 13
No response for:1001, 1002. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1003 len: 0b / 0b
No response for:1001, 1002. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1004 len: 0b / 0b
Got resp: $01 (MemGet) ReqID:1001
updating $0400-$05ca mem/bank:0/0
Got resp: $01 (MemGet) ReqID:1002
updating $ea31-$ea4b mem/bank:0/0
Got resp: $81 (Ping) ReqID:1003
Got resp: $81 (Ping) ReqID:1004
Requested VICE Memory $ea4c-$ea5a
Send cmd: $01 (MemGet) ReqID: 1005 len: 13 / 13
No response for:1005. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1006 len: 0b / 0b
No response for:1005. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1007 len: 0b / 0b
Got resp: $01 (MemGet) ReqID:1005
updating $ea4c-$ea5a mem/bank:0/0
Got resp: $81 (Ping) ReqID:1006
Requested VICE Memory $ea5b-$ea63
Send cmd: $01 (MemGet) ReqID: 1008 len: 13 / 13
No response for:1008. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1009 len: 0b / 0b
No response for:1008. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 100a len: 0b / 0b
Got resp: $81 (Ping) ReqID:1007
Got resp: $01 (MemGet) ReqID:1008
updating $ea5b-$ea63 mem/bank:0/0
Got resp: $81 (Ping) ReqID:1009
Requested VICE Memory $ea64-$ea68
Send cmd: $01 (MemGet) ReqID: 100b len: 13 / 13
No response for:100b. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 100c len: 0b / 0b
No response for:100b. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 100d len: 0b / 0b
Got resp: $81 (Ping) ReqID:100a
Got resp: $01 (MemGet) ReqID:100b
updating $ea64-$ea68 mem/bank:0/0
Got resp: $81 (Ping) ReqID:100c
Got resp: $81 (Ping) ReqID:100d
Requested VICE Memory $ea69-$ea69
Send cmd: $01 (MemGet) ReqID: 100e len: 13 / 13
No response for:100e. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 100f len: 0b / 0b
No response for:100e. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1010 len: 0b / 0b
Got resp: $01 (MemGet) ReqID:100e
updating $ea69-$ea69 mem/bank:0/0
Got resp: $81 (Ping) ReqID:100f
Got resp: $81 (Ping) ReqID:1010
Requested VICE Memory $ea29-$ea30
Send cmd: $01 (MemGet) ReqID: 1011 len: 13 / 13
Got resp: $01 (MemGet) ReqID:1011
updating $ea29-$ea30 mem/bank:0/0
Send cmd: $71 (Step) ReqID: 1012 len: 0e / 0e
Got resp: $71 (Step) ReqID:1012
Got resp: $63 (Resumed) ReqID:ffffffff
Stop/Resume PC=$e5d1
Treating Resume to mean Stopped
Send cmd: $71 (Step) ReqID: 1013 len: 0e / 0e
Got resp: $31 (RegistersGet) ReqID:ffffffff
PC=$e5d4 A=$00 X=$00 Y=$0a SP=$f3 00=$2f 01=$37 FL=$22 LIN=$0000 CYC=$0004
Got resp: $62 (Stopped) ReqID:ffffffff
Stop/Resume PC=$e5d4
Requested VICE Memory $0400-$05ca
Send cmd: $01 (MemGet) ReqID: 1014 len: 13 / 13
Requested VICE Memory $ea29-$ea69
Send cmd: $01 (MemGet) ReqID: 1015 len: 13 / 13
No response for:1013, 1014, 1015. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1016 len: 0b / 0b
No response for:1013, 1014, 1015. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1017 len: 0b / 0b
No response for:1013, 1014, 1015. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1018 len: 0b / 0b
Got resp: $71 (Step) ReqID:1013
Got resp: $63 (Resumed) ReqID:ffffffff
Stop/Resume PC=$e5d4
Got resp: $31 (RegistersGet) ReqID:ffffffff
PC=$e5cd A=$00 X=$00 Y=$0a SP=$f3 00=$2f 01=$37 FL=$22 LIN=$0000 CYC=$0007
Got resp: $62 (Stopped) ReqID:ffffffff
Stop/Resume PC=$e5cd
Got resp: $01 (MemGet) ReqID:1014
updating $0400-$05ca mem/bank:0/0
Got resp: $01 (MemGet) ReqID:1015
updating $ea29-$ea69 mem/bank:0/0
Requested VICE Memory $0400-$05ca
Send cmd: $01 (MemGet) ReqID: 1019 len: 13 / 13
Requested VICE Memory $ea29-$ea69
Send cmd: $01 (MemGet) ReqID: 101a len: 13 / 13
No response for:1019, 101a. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 101b len: 0b / 0b
No response for:1019, 101a. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 101c len: 0b / 0b
Got resp: $81 (Ping) ReqID:1016
Got resp: $81 (Ping) ReqID:1017
Got resp: $81 (Ping) ReqID:1018
Got resp: $01 (MemGet) ReqID:1019
updating $0400-$05ca mem/bank:0/0
No response for:101a. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 101d len: 0b / 0b
No response for:101a. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 101e len: 0b / 0b
No response for:101a. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 101f len: 0b / 0b
Got resp: $01 (MemGet) ReqID:101a
updating $ea29-$ea69 mem/bank:0/0
Got resp: $81 (Ping) ReqID:101b
Got resp: $81 (Ping) ReqID:101c
Send cmd: $71 (Step) ReqID: 1020 len: 0e / 0e
No response for:1020. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1021 len: 0b / 0b
Got resp: $81 (Ping) ReqID:101d
Got resp: $81 (Ping) ReqID:101e
Got resp: $81 (Ping) ReqID:101f
No response for:1020. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1022 len: 0b / 0b
No response for:1020. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1023 len: 0b / 0b
No response for:1020. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1024 len: 0b / 0b
Got resp: $71 (Step) ReqID:1020
Got resp: $63 (Resumed) ReqID:ffffffff
Stop/Resume PC=$e5cd
Treating Resume to mean Stopped
Got resp: $31 (RegistersGet) ReqID:ffffffff
PC=$e5cf A=$00 X=$00 Y=$0a SP=$f3 00=$2f 01=$37 FL=$22 LIN=$0000 CYC=$000a
Send cmd: $71 (Step) ReqID: 1025 len: 0e / 0e
No response for:1025. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1026 len: 0b / 0b
Got resp: $62 (Stopped) ReqID:ffffffff
Stop/Resume PC=$e5cf
Got resp: $81 (Ping) ReqID:1021
Got resp: $81 (Ping) ReqID:1022
Requested VICE Memory $0400-$05ca
Send cmd: $01 (MemGet) ReqID: 1027 len: 13 / 13
Requested VICE Memory $ea29-$ea69
Send cmd: $01 (MemGet) ReqID: 1028 len: 13 / 13
No response for:1025, 1027, 1028. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1029 len: 0b / 0b
No response for:1025, 1027, 1028. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 102a len: 0b / 0b
No response for:1025, 1027, 1028. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 102b len: 0b / 0b
Got resp: $81 (Ping) ReqID:1023
Got resp: $81 (Ping) ReqID:1024
Got resp: $71 (Step) ReqID:1025
Got resp: $63 (Resumed) ReqID:ffffffff
Stop/Resume PC=$e5cf
Got resp: $31 (RegistersGet) ReqID:ffffffff
PC=$e5d1 A=$00 X=$00 Y=$0a SP=$f3 00=$2f 01=$37 FL=$22 LIN=$0000 CYC=$000d
Got resp: $62 (Stopped) ReqID:ffffffff
Stop/Resume PC=$e5d1
No response for:1027, 1028. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 102c len: 0b / 0b
No response for:1027, 1028. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 102d len: 0b / 0b
No response for:1027, 1028. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 102e len: 0b / 0b
Got resp: $81 (Ping) ReqID:1026
Got resp: $01 (MemGet) ReqID:1027
updating $0400-$05ca mem/bank:0/0
Got resp: $01 (MemGet) ReqID:1028
updating $ea29-$ea69 mem/bank:0/0
Send cmd: $aa (Exit) ReqID: 102f len: 0b / 0b
No response for:102f. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1030 len: 0b / 0b
Got resp: $81 (Ping) ReqID:1029
Got resp: $81 (Ping) ReqID:102a
Got resp: $81 (Ping) ReqID:102b
Got resp: $81 (Ping) ReqID:102c
Got resp: $81 (Ping) ReqID:102d
No response for:102f. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1031 len: 0b / 0b
No response for:102f. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1032 len: 0b / 0b
No response for:102f. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1033 len: 0b / 0b
Got resp: $81 (Ping) ReqID:102e
Got resp: $aa (Exit) ReqID:102f
Got resp: $63 (Resumed) ReqID:ffffffff
Stop/Resume PC=$e5d1
Send cmd: $31 (RegistersGet) ReqID: 1034 len: 0c / 0c
Got resp: $31 (RegistersGet) ReqID:ffffffff
PC=$e5cf A=$00 X=$00 Y=$0a SP=$f3 00=$2f 01=$37 FL=$22 LIN=$0000 CYC=$0001
Got resp: $62 (Stopped) ReqID:ffffffff
Stop/Resume PC=$e5cf
Requested VICE Memory $0400-$05ca
Send cmd: $01 (MemGet) ReqID: 1035 len: 13 / 13
Requested VICE Memory $ea29-$ea69
Send cmd: $01 (MemGet) ReqID: 1036 len: 13 / 13
No response for:1034, 1035, 1036. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1037 len: 0b / 0b
No response for:1034, 1035, 1036. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1038 len: 0b / 0b
No response for:1034, 1035, 1036. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1039 len: 0b / 0b
Got resp: $81 (Ping) ReqID:1030
Got resp: $81 (Ping) ReqID:1031
Got resp: $81 (Ping) ReqID:1032
Got resp: $81 (Ping) ReqID:1033
Got resp: $31 (RegistersGet) ReqID:1034
PC=$e5cf A=$00 X=$00 Y=$0a SP=$f3 00=$2f 01=$37 FL=$22 LIN=$0000 CYC=$0001
Got resp: $01 (MemGet) ReqID:1035
updating $0400-$05ca mem/bank:0/0
No response for:1036. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 103a len: 0b / 0b
No response for:1036. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 103b len: 0b / 0b
No response for:1036. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 103c len: 0b / 0b
Got resp: $01 (MemGet) ReqID:1036
updating $ea29-$ea69 mem/bank:0/0
Got resp: $81 (Ping) ReqID:1037
Got resp: $81 (Ping) ReqID:1038
Send cmd: $71 (Step) ReqID: 103d len: 0e / 0e
No response for:103d. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 103e len: 0b / 0b
Got resp: $81 (Ping) ReqID:1039
Got resp: $81 (Ping) ReqID:103a
Got resp: $81 (Ping) ReqID:103b
No response for:103d. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 103f len: 0b / 0b
No response for:103d. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1040 len: 0b / 0b
Got resp: $81 (Ping) ReqID:103c
Got resp: $71 (Step) ReqID:103d
Requested VICE Memory $e5cc-$e5ce
Send cmd: $01 (MemGet) ReqID: 1041 len: 13 / 13
No response for:1041. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1042 len: 0b / 0b
Got resp: $63 (Resumed) ReqID:ffffffff
Stop/Resume PC=$e5cf
Treating Resume to mean Stopped
Got resp: $31 (RegistersGet) ReqID:ffffffff
PC=$e5d1 A=$00 X=$00 Y=$0a SP=$f3 00=$2f 01=$37 FL=$22 LIN=$0000 CYC=$0004
Got resp: $62 (Stopped) ReqID:ffffffff
Stop/Resume PC=$e5d1
No response for:1041. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1043 len: 0b / 0b
No response for:1041. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1044 len: 0b / 0b
No response for:1041. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1045 len: 0b / 0b
Got resp: $81 (Ping) ReqID:103e
Got resp: $81 (Ping) ReqID:103f
Got resp: $81 (Ping) ReqID:1040
No response for:1041. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1046 len: 0b / 0b
No response for:1041. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1047 len: 0b / 0b
Got resp: $01 (MemGet) ReqID:1041
updating $e5cc-$e5ce mem/bank:0/0
Got resp: $81 (Ping) ReqID:1042
Requested VICE Memory $0400-$05ca
Send cmd: $01 (MemGet) ReqID: 1048 len: 13 / 13
Requested VICE Memory $e5cf-$e5e8
Send cmd: $01 (MemGet) ReqID: 1049 len: 13 / 13
Requested VICE Memory $ea29-$ea69
Send cmd: $01 (MemGet) ReqID: 104a len: 13 / 13
No response for:1048, 1049, 104a. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 104b len: 0b / 0b
No response for:1048, 1049, 104a. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 104c len: 0b / 0b
Got resp: $81 (Ping) ReqID:1043
Got resp: $81 (Ping) ReqID:1044
Got resp: $81 (Ping) ReqID:1045
Got resp: $81 (Ping) ReqID:1046
Got resp: $81 (Ping) ReqID:1047
No response for:1048, 1049, 104a. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 104d len: 0b / 0b
No response for:1048, 1049, 104a. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 104e len: 0b / 0b
No response for:1048, 1049, 104a. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 104f len: 0b / 0b
Got resp: $01 (MemGet) ReqID:1048
updating $0400-$05ca mem/bank:0/0
Got resp: $01 (MemGet) ReqID:1049
updating $e5cf-$e5e8 mem/bank:0/0
Got resp: $01 (MemGet) ReqID:104a
updating $ea29-$ea69 mem/bank:0/0
Requested VICE Memory $e5e9-$e5f6
Send cmd: $01 (MemGet) ReqID: 1050 len: 13 / 13
No response for:1050. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1051 len: 0b / 0b
No response for:1050. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1052 len: 0b / 0b
Got resp: $81 (Ping) ReqID:104b
Got resp: $81 (Ping) ReqID:104c
Got resp: $81 (Ping) ReqID:104d
Got resp: $81 (Ping) ReqID:104e
No response for:1050. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1053 len: 0b / 0b
No response for:1050. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1054 len: 0b / 0b
No response for:1050. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1055 len: 0b / 0b
Got resp: $81 (Ping) ReqID:104f
Got resp: $01 (MemGet) ReqID:1050
updating $e5e9-$e5f6 mem/bank:0/0
Got resp: $81 (Ping) ReqID:1051
Requested VICE Memory $e5f7-$e5fe
Send cmd: $01 (MemGet) ReqID: 1056 len: 13 / 13
No response for:1056. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1057 len: 0b / 0b
No response for:1056. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1058 len: 0b / 0b
Got resp: $81 (Ping) ReqID:1052
Got resp: $81 (Ping) ReqID:1053
Got resp: $81 (Ping) ReqID:1054
No response for:1056. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1059 len: 0b / 0b
No response for:1056. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 105a len: 0b / 0b
No response for:1056. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 105b len: 0b / 0b
Got resp: $81 (Ping) ReqID:1055
Got resp: $01 (MemGet) ReqID:1056
updating $e5f7-$e5fe mem/bank:0/0
Got resp: $81 (Ping) ReqID:1057
Requested VICE Memory $e5ff-$e600
Send cmd: $01 (MemGet) ReqID: 105c len: 13 / 13
No response for:105c. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 105d len: 0b / 0b
No response for:105c. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 105e len: 0b / 0b
Got resp: $81 (Ping) ReqID:1058
Got resp: $81 (Ping) ReqID:1059
Got resp: $81 (Ping) ReqID:105a
No response for:105c. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 105f len: 0b / 0b
No response for:105c. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1060 len: 0b / 0b
No response for:105c. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1061 len: 0b / 0b
Got resp: $81 (Ping) ReqID:105b
Got resp: $01 (MemGet) ReqID:105c
updating $e5ff-$e600 mem/bank:0/0
Got resp: $81 (Ping) ReqID:105d
Requested VICE Memory $e601-$e605
Send cmd: $01 (MemGet) ReqID: 1062 len: 13 / 13
Got resp: $81 (Ping) ReqID:105e
No response for:1062. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1063 len: 0b / 0b
No response for:1062. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1064 len: 0b / 0b
Got resp: $81 (Ping) ReqID:105f
Got resp: $81 (Ping) ReqID:1060
No response for:1062. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1065 len: 0b / 0b
No response for:1062. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1066 len: 0b / 0b
No response for:1062. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1067 len: 0b / 0b
Got resp: $81 (Ping) ReqID:1061
Got resp: $01 (MemGet) ReqID:1062
updating $e601-$e605 mem/bank:0/0
Got resp: $81 (Ping) ReqID:1063
Requested VICE Memory $e606-$e606
Send cmd: $01 (MemGet) ReqID: 1068 len: 13 / 13
No response for:1068. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1069 len: 0b / 0b
No response for:1068. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 106a len: 0b / 0b
Got resp: $81 (Ping) ReqID:1064
Got resp: $81 (Ping) ReqID:1065
Got resp: $81 (Ping) ReqID:1066
Got resp: $81 (Ping) ReqID:1067
No response for:1068. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 106b len: 0b / 0b
No response for:1068. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 106c len: 0b / 0b
No response for:1068. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 106d len: 0b / 0b
Got resp: $01 (MemGet) ReqID:1068
updating $e606-$e606 mem/bank:0/0
Got resp: $81 (Ping) ReqID:1069
Got resp: $81 (Ping) ReqID:106a
Send cmd: $71 (Step) ReqID: 106e len: 0e / 0e
No response for:106e. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 106f len: 0b / 0b
Got resp: $81 (Ping) ReqID:106b
Got resp: $81 (Ping) ReqID:106c
Got resp: $81 (Ping) ReqID:106d
No response for:106e. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1070 len: 0b / 0b
No response for:106e. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1071 len: 0b / 0b
No response for:106e. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1072 len: 0b / 0b
Got resp: $71 (Step) ReqID:106e
Got resp: $63 (Resumed) ReqID:ffffffff
Stop/Resume PC=$e5d1
Treating Resume to mean Stopped
Got resp: $31 (RegistersGet) ReqID:ffffffff
PC=$e5d4 A=$00 X=$00 Y=$0a SP=$f3 00=$2f 01=$37 FL=$22 LIN=$0000 CYC=$0008
Send cmd: $71 (Step) ReqID: 1073 len: 0e / 0e
No response for:1073. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1074 len: 0b / 0b
No response for:1073. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1075 len: 0b / 0b
Got resp: $62 (Stopped) ReqID:ffffffff
Stop/Resume PC=$e5d4
Got resp: $81 (Ping) ReqID:106f
Got resp: $81 (Ping) ReqID:1070
Got resp: $81 (Ping) ReqID:1071
Requested VICE Memory $0400-$05ca
Send cmd: $01 (MemGet) ReqID: 1076 len: 13 / 13
Requested VICE Memory $e5cc-$e606
Send cmd: $01 (MemGet) ReqID: 1077 len: 13 / 13
Requested VICE Memory $ea29-$ea69
Send cmd: $01 (MemGet) ReqID: 1078 len: 13 / 13
No response for:1073, 1076, 1077, 1078. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1079 len: 0b / 0b
No response for:1073, 1076, 1077, 1078. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 107a len: 0b / 0b
Got resp: $81 (Ping) ReqID:1072
Got resp: $71 (Step) ReqID:1073
Got resp: $63 (Resumed) ReqID:ffffffff
Stop/Resume PC=$e5d4
Got resp: $31 (RegistersGet) ReqID:ffffffff
PC=$e5cd A=$00 X=$00 Y=$0a SP=$f3 00=$2f 01=$37 FL=$22 LIN=$0000 CYC=$000b
Got resp: $62 (Stopped) ReqID:ffffffff
Stop/Resume PC=$e5cd
No response for:1076, 1077, 1078. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 107b len: 0b / 0b
No response for:1076, 1077, 1078. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 107c len: 0b / 0b
No response for:1076, 1077, 1078. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 107d len: 0b / 0b
Got resp: $81 (Ping) ReqID:1074
Got resp: $81 (Ping) ReqID:1075
Got resp: $01 (MemGet) ReqID:1076
updating $0400-$05ca mem/bank:0/0
No response for:1077, 1078. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 107e len: 0b / 0b
No response for:1077, 1078. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 107f len: 0b / 0b
No response for:1077, 1078. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1080 len: 0b / 0b
Got resp: $01 (MemGet) ReqID:1077
updating $e5cc-$e606 mem/bank:0/0
Got resp: $01 (MemGet) ReqID:1078
updating $ea29-$ea69 mem/bank:0/0
Got resp: $81 (Ping) ReqID:1079
Send cmd: $71 (Step) ReqID: 1081 len: 0e / 0e
Got resp: $81 (Ping) ReqID:107a
Got resp: $81 (Ping) ReqID:107b
No response for:1081. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1082 len: 0b / 0b
No response for:1081. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1083 len: 0b / 0b
No response for:1081. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1084 len: 0b / 0b
Got resp: $81 (Ping) ReqID:107c
Got resp: $81 (Ping) ReqID:107d
Got resp: $81 (Ping) ReqID:107e
No response for:1081. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1085 len: 0b / 0b
No response for:1081. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1086 len: 0b / 0b
No response for:1081. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1087 len: 0b / 0b
Got resp: $81 (Ping) ReqID:107f
Got resp: $81 (Ping) ReqID:1080
Got resp: $71 (Step) ReqID:1081
Send cmd: $71 (Step) ReqID: 1088 len: 0e / 0e
No response for:1088. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1089 len: 0b / 0b
Got resp: $63 (Resumed) ReqID:ffffffff
Stop/Resume PC=$e5cd
Treating Resume to mean Stopped
Got resp: $31 (RegistersGet) ReqID:ffffffff
PC=$e5cf A=$00 X=$00 Y=$0a SP=$f3 00=$2f 01=$37 FL=$22 LIN=$0000 CYC=$000e
Got resp: $62 (Stopped) ReqID:ffffffff
Stop/Resume PC=$e5cf
Requested VICE Memory $0400-$05ca
Send cmd: $01 (MemGet) ReqID: 108a len: 13 / 13
Requested VICE Memory $e5cc-$e606
Send cmd: $01 (MemGet) ReqID: 108b len: 13 / 13
Requested VICE Memory $ea29-$ea69
Send cmd: $01 (MemGet) ReqID: 108c len: 13 / 13
No response for:1088, 108a, 108b, 108c. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 108d len: 0b / 0b
No response for:1088, 108a, 108b, 108c. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 108e len: 0b / 0b
No response for:1088, 108a, 108b, 108c. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 108f len: 0b / 0b
Got resp: $81 (Ping) ReqID:1082
Got resp: $81 (Ping) ReqID:1083
Got resp: $81 (Ping) ReqID:1084
Got resp: $81 (Ping) ReqID:1085
Got resp: $81 (Ping) ReqID:1086
Got resp: $81 (Ping) ReqID:1087
Got resp: $71 (Step) ReqID:1088
No response for:108a, 108b, 108c. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1090 len: 0b / 0b
No response for:108a, 108b, 108c. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1091 len: 0b / 0b
No response for:108a, 108b, 108c. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1092 len: 0b / 0b
Got resp: $63 (Resumed) ReqID:ffffffff
Stop/Resume PC=$e5cf
Got resp: $31 (RegistersGet) ReqID:ffffffff
PC=$e5d1 A=$00 X=$00 Y=$0a SP=$f3 00=$2f 01=$37 FL=$22 LIN=$0000 CYC=$0011
Got resp: $62 (Stopped) ReqID:ffffffff
Stop/Resume PC=$e5d1
No response for:108a, 108b, 108c. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1093 len: 0b / 0b
No response for:108a, 108b, 108c. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1094 len: 0b / 0b
No response for:108a, 108b, 108c. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1095 len: 0b / 0b
Got resp: $81 (Ping) ReqID:1089
Got resp: $01 (MemGet) ReqID:108a
updating $0400-$05ca mem/bank:0/0
Got resp: $01 (MemGet) ReqID:108b
updating $e5cc-$e606 mem/bank:0/0
No response for:108c. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1096 len: 0b / 0b
No response for:108c. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1097 len: 0b / 0b
No response for:108c. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1098 len: 0b / 0b
Got resp: $01 (MemGet) ReqID:108c
updating $ea29-$ea69 mem/bank:0/0
Got resp: $81 (Ping) ReqID:108d
Got resp: $81 (Ping) ReqID:108e
would help to see the source :)
are you making a new connection for each command perhaps? that can behave very odd, especially on windows.
I have no ability to test on Windows for a while, unfortunately, but gpz's suggestions seem like a good place to start. I'm also writing a debugger using the connection and it seems to be working consistently for me.
Last edit: Empathic Qubit 2021-01-03
Made the debugger repo public, it is just started so lots of things to fix but solving the connection issue is required to move forward: https://github.com/Sakrac/IceBroLite
In ViceInterface.cpp around line 280 you can find void ViceConnection::connectionThread() (https://github.com/Sakrac/IceBroLite/blob/main/src/ViceInterface.cpp#L279), it opens a connection and immediately sends a command to stop Vice which works ok except I need to ping to get the memory refreshed. If I've made any mistakes with the connection itself it should be obvious from the first few lines. If it looks good then I'm hoping the output is useful.
The linux port is not that far off, primarily replacing winsock and setting up makefiles I think, but want it working in windows first.
Is there a way I can run the program with software OpenGL? I'm using a free tier AWS instance, but hardware OpenGL doesn't work over remote.
What I was going to try is just to run it and look at the loopback communication with Wireshark and npcap to see what it was really doing. If you can figure that out it might help you.
I tried to look up GLFW and software OpenGL for windows, sounds like it should work if there is a software OpenGL driver installed.
But I have ported the tool to linux, just run make in the src folder. It works visually but I need to build vice 3.5 on my Pi 400 to make sure it can communicate at all.
I'll try to simplify the messaging thread, I no longer need to wait for a response to keep track of which command I sent to VICE to match it with the returned string. I'll look up the tools you suggested.
I thought the issue was with Windows though, that's why I was trying to build it there. I was also going to try the test suite on WIndows. You say it works on Linux?
I have just ported it to Linux, previously it only ran on Windows so there wasn't a problem on Linux :) But I have not built VICE 3.5 on Linux yet to test it.
I don't know if it will help, but I have a project at https://github.com/empathicqubit/vscode-cc65-vice-debug which is the one that seems to be working. I haven't tested it on Windows recently, but it did work before. It's a little complicated to set up, but maybe looking at it will help you figure out how to make yours work. The part that communicates with VICE is in src/vice-grip.ts. The interesting bits are in the start() and multiExecBinary() functions. Start should give you an idea of how the connection is initiated, and multiExecBinary is how the actual command is processed. Multiple commands can go separately or in batches, with the caveat that having multiple independent threads will cause problems unless managed carefully because the emulator will stop any time a command gets sent.
Thanks for the example! It showed me that it should just work as is and I found I had used an if where I should have used a while. This looks like it was my fault and the issue can be closed. At least I got the linux port going!
Glad you tracked it down. I verified the test suite on Windows and they seem to be working also.