fuzziqersoftware / newserv

Phantasy Star Online game server, proxy, and reverse-engineering tools
MIT License
161 stars 36 forks source link

TFS1.nk size incorrect, abort #50

Closed PalasX closed 1 year ago

PalasX commented 1 year ago
I 27749 2022-11-04 17:30:36 - [Config] Loading configuration
I 27749 2022-11-04 17:30:36 - [Config] Added local address: en0
I 27749 2022-11-04 17:30:36 - [Config] Added external address: 192.168.1.53
terminate called after throwing an instance of 'std::runtime_error'
  what():  size of system/blueburst/keys/tfs1.nsk is incorrect
Aborted

No LSB modules are available. Distributor ID: Raspbian Description: Raspbian GNU/Linux 11 (bullseye) Release: 11 Codename: bullseye

also, it was set +x by default. is that normal?

fuzziqersoftware commented 1 year ago

That's a very odd error. Apparently the size of the KeyFile struct isn't the same on Raspbian for some reason... it should be 0x1049 bytes. I'm a bit concerned that e.g. the ptext/parray types are misbehaving, which would break pretty much everything else even if we fixed the KeyFile struct. Can you add the following print to the beginning of main() (in src/Main.cc) and share what it outputs?

fprintf(stderr, "%zX %zX %zX %zX %zX %zX %zX %zX %zX\n",
    sizeof(PSOBBEncryption::KeyFile),
    sizeof(PSOBBEncryption::KeyFile::InitialKeys),
    sizeof(PSOBBEncryption::KeyFile::InitialKeys::jsd1_stream_offset),
    sizeof(PSOBBEncryption::KeyFile::InitialKeys::as8),
    sizeof(PSOBBEncryption::KeyFile::InitialKeys::as32),
    sizeof(PSOBBEncryption::KeyFile::PrivateKeys),
    sizeof(PSOBBEncryption::KeyFile::PrivateKeys::as8),
    sizeof(PSOBBEncryption::KeyFile::PrivateKeys::as32),
    sizeof(PSOBBEncryption::KeyFile::subtype));

For reference, on my system, this prints 1049 48 1 48 48 1000 1000 1000 1.

PalasX commented 1 year ago
pi@RasPi4Osoyoo:~/programs/newserv $ sudo ./newserv
1049 48 1 48 48 1000 1000 1000 1
I 16083 2022-11-05 00:23:36 - [Lobby/1] Created lobby
I 16083 2022-11-05 00:23:36 - [Lobby/2] Created lobby
I 16083 2022-11-05 00:23:36 - [Lobby/3] Created lobby
I 16083 2022-11-05 00:23:36 - [Lobby/4] Created lobby
I 16083 2022-11-05 00:23:36 - [Lobby/5] Created lobby
I 16083 2022-11-05 00:23:36 - [Lobby/6] Created lobby
I 16083 2022-11-05 00:23:36 - [Lobby/7] Created lobby
I 16083 2022-11-05 00:23:36 - [Lobby/8] Created lobby
I 16083 2022-11-05 00:23:36 - [Lobby/9] Created lobby
I 16083 2022-11-05 00:23:36 - [Lobby/A] Created lobby
I 16083 2022-11-05 00:23:36 - [Lobby/B] Created lobby
I 16083 2022-11-05 00:23:36 - [Lobby/C] Created lobby
I 16083 2022-11-05 00:23:36 - [Lobby/D] Created lobby
I 16083 2022-11-05 00:23:36 - [Lobby/E] Created lobby
I 16083 2022-11-05 00:23:36 - [Lobby/F] Created lobby
I 16083 2022-11-05 00:23:36 - [Lobby/10] Created lobby
I 16083 2022-11-05 00:23:36 - [Lobby/11] Created lobby
I 16083 2022-11-05 00:23:36 - [Lobby/12] Created lobby
I 16083 2022-11-05 00:23:36 - [Lobby/13] Created lobby
I 16083 2022-11-05 00:23:36 - [Lobby/14] Created lobby
I 16083 2022-11-05 00:23:36 - [Config] Reading network addresses
I 16083 2022-11-05 00:23:36 - [Config] Found interface: eth0 = 192.168.1.181
I 16083 2022-11-05 00:23:36 - [Config] Found interface: lo = 127.0.0.1
I 16083 2022-11-05 00:23:36 - [Config] Found interface: wlan0 = 192.168.1.53
I 16083 2022-11-05 00:23:36 - [Config] Loading configuration
I 16083 2022-11-05 00:23:36 - [Config] Added local address: en0
I 16083 2022-11-05 00:23:36 - [Config] Added external address: 192.168.1.53
terminate called after throwing an instance of 'std::runtime_error'
  what():  size of system/blueburst/keys/tfs1.nsk is incorrect
Aborted
pi@RasPi4Osoyoo:~/programs/newserv/system/blueburst/keys $ ls -al
total 48
drwxr-xr-x 2 pi pi 4096 Nov  4 17:36 .
drwxr-xr-x 4 pi pi 4096 Nov  4 17:35 ..
-rw-r--r-- 1 pi pi 4169 Nov  4 09:46 default.nsk
-rw-r--r-- 1 pi pi 4169 Nov  4 09:46 jsd1.nsk
-rw-r--r-- 1 pi pi 4169 Nov  4 09:46 mocb1.nsk
-rw-r--r-- 1 pi pi 4169 Nov  4 09:46 tethealla.nsk
-rwxr-xr-x 1 pi pi 4169 Nov  4 17:36 tfs1.nsk
PalasX commented 1 year ago

This is my entire claen 'make' results for newserve, which results in the above error again:

pi@RasPi4Osoyoo:~/programs/newserv $ make clean
pi@RasPi4Osoyoo:~/programs/newserv $ make
[  2%] Building CXX object CMakeFiles/newserv.dir/src/CatSession.cc.o
[  4%] Building CXX object CMakeFiles/newserv.dir/src/Channel.cc.o
[  7%] Building CXX object CMakeFiles/newserv.dir/src/ChatCommands.cc.o
[  9%] Building CXX object CMakeFiles/newserv.dir/src/Client.cc.o
[ 11%] Building CXX object CMakeFiles/newserv.dir/src/Compression.cc.o
[ 14%] Building CXX object CMakeFiles/newserv.dir/src/DNSServer.cc.o
[ 16%] Building CXX object CMakeFiles/newserv.dir/src/Episode3.cc.o
[ 19%] Building CXX object CMakeFiles/newserv.dir/src/FileContentsCache.cc.o
[ 21%] Building CXX object CMakeFiles/newserv.dir/src/FunctionCompiler.cc.o
[ 23%] Building CXX object CMakeFiles/newserv.dir/src/GSLArchive.cc.o
[ 26%] Building CXX object CMakeFiles/newserv.dir/src/IPFrameInfo.cc.o
[ 28%] Building CXX object CMakeFiles/newserv.dir/src/IPStackSimulator.cc.o
[ 30%] Building CXX object CMakeFiles/newserv.dir/src/Items.cc.o
[ 33%] Building CXX object CMakeFiles/newserv.dir/src/LevelTable.cc.o
[ 35%] Building CXX object CMakeFiles/newserv.dir/src/License.cc.o
[ 38%] Building CXX object CMakeFiles/newserv.dir/src/Lobby.cc.o
[ 40%] Building CXX object CMakeFiles/newserv.dir/src/Loggers.cc.o
[ 42%] Building CXX object CMakeFiles/newserv.dir/src/Main.cc.o
[ 45%] Building CXX object CMakeFiles/newserv.dir/src/Map.cc.o
[ 47%] Building CXX object CMakeFiles/newserv.dir/src/Menu.cc.o
[ 50%] Building CXX object CMakeFiles/newserv.dir/src/NetworkAddresses.cc.o
[ 52%] Building CXX object CMakeFiles/newserv.dir/src/PatchFileIndex.cc.o
[ 54%] Building CXX object CMakeFiles/newserv.dir/src/Player.cc.o
[ 57%] Building CXX object CMakeFiles/newserv.dir/src/ProxyCommands.cc.o
[ 59%] Building CXX object CMakeFiles/newserv.dir/src/ProxyServer.cc.o
/home/pi/programs/newserv/src/ProxyServer.cc: In member function ‘size_t ProxyServer::delete_disconnected_sessions()’:
/home/pi/programs/newserv/src/ProxyServer.cc:830:40: note: parameter passing for argument of type ‘std::__detail::_Node_iterator<std::pair<const long long unsigned int, std::shared_ptr<ProxyServer::LinkedSession> >, false, false>’ changed in GCC 7.1
  830 |       it = this->id_to_session.erase(it);
      |                                        ^
In file included from /usr/include/c++/10/unordered_map:47,
                 from /home/pi/programs/newserv/src/ProxyServer.hh:7,
                 from /home/pi/programs/newserv/src/ProxyServer.cc:1:
/usr/include/c++/10/bits/unordered_map.h: In member function ‘std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::iterator std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::erase(std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::iterator) [with _Key = long long unsigned int; _Tp = std::shared_ptr<ProxyServer::LinkedSession>; _Hash = std::hash<long long unsigned int>; _Pred = std::equal_to<long long unsigned int>; _Alloc = std::allocator<std::pair<const long long unsigned int, std::shared_ptr<ProxyServer::LinkedSession> > >]’:
/usr/include/c++/10/bits/unordered_map.h:796:7: note: parameter passing for argument of type ‘std::unordered_map<long long unsigned int, std::shared_ptr<ProxyServer::LinkedSession> >::iterator’ {aka ‘std::__detail::_Hashtable_base<long long unsigned int, std::pair<const long long unsigned int, std::shared_ptr<ProxyServer::LinkedSession> >, std::__detail::_Select1st, std::equal_to<long long unsigned int>, std::hash<long long unsigned int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Hashtable_traits<false, false, true> >::iterator’} changed in GCC 7.1
  796 |       erase(iterator __position)
      |       ^~~~~
/usr/include/c++/10/bits/unordered_map.h:797:26: note: parameter passing for argument of type ‘std::unordered_map<long long unsigned int, std::shared_ptr<ProxyServer::LinkedSession> >::iterator’ {aka ‘std::__detail::_Hashtable_base<long long unsigned int, std::pair<const long long unsigned int, std::shared_ptr<ProxyServer::LinkedSession> >, std::__detail::_Select1st, std::equal_to<long long unsigned int>, std::hash<long long unsigned int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Hashtable_traits<false, false, true> >::iterator’} changed in GCC 7.1
  797 |       { return _M_h.erase(__position); }
      |                ~~~~~~~~~~^~~~~~~~~~~~
In file included from /usr/include/c++/10/unordered_map:46,
                 from /home/pi/programs/newserv/src/ProxyServer.hh:7,
                 from /home/pi/programs/newserv/src/ProxyServer.cc:1:
/usr/include/c++/10/bits/hashtable.h: In member function ‘std::_Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits>::iterator std::_Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits>::erase(std::_Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits>::iterator) [with _Key = long long unsigned int; _Value = std::pair<const long long unsigned int, std::shared_ptr<ProxyServer::LinkedSession> >; _Alloc = std::allocator<std::pair<const long long unsigned int, std::shared_ptr<ProxyServer::LinkedSession> > >; _ExtractKey = std::__detail::_Select1st; _Equal = std::equal_to<long long unsigned int>; _H1 = std::hash<long long unsigned int>; _H2 = std::__detail::_Mod_range_hashing; _Hash = std::__detail::_Default_ranged_hash; _RehashPolicy = std::__detail::_Prime_rehash_policy; _Traits = std::__detail::_Hashtable_traits<false, false, true>]’:
/usr/include/c++/10/bits/hashtable.h:806:7: note: parameter passing for argument of type ‘std::_Hashtable<long long unsigned int, std::pair<const long long unsigned int, std::shared_ptr<ProxyServer::LinkedSession> >, std::allocator<std::pair<const long long unsigned int, std::shared_ptr<ProxyServer::LinkedSession> > >, std::__detail::_Select1st, std::equal_to<long long unsigned int>, std::hash<long long unsigned int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::iterator’ {aka ‘std::__detail::_Hashtable_base<long long unsigned int, std::pair<const long long unsigned int, std::shared_ptr<ProxyServer::LinkedSession> >, std::__detail::_Select1st, std::equal_to<long long unsigned int>, std::hash<long long unsigned int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Hashtable_traits<false, false, true> >::iterator’} changed in GCC 7.1
  806 |       erase(iterator __it)
      |       ^~~~~
/usr/include/c++/10/bits/hashtable.h:807:21: note: parameter passing for argument of type ‘std::_Hashtable<long long unsigned int, std::pair<const long long unsigned int, std::shared_ptr<ProxyServer::LinkedSession> >, std::allocator<std::pair<const long long unsigned int, std::shared_ptr<ProxyServer::LinkedSession> > >, std::__detail::_Select1st, std::equal_to<long long unsigned int>, std::hash<long long unsigned int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::const_iterator’ {aka ‘std::__detail::_Hashtable_base<long long unsigned int, std::pair<const long long unsigned int, std::shared_ptr<ProxyServer::LinkedSession> >, std::__detail::_Select1st, std::equal_to<long long unsigned int>, std::hash<long long unsigned int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Hashtable_traits<false, false, true> >::const_iterator’} changed in GCC 7.1
  807 |       { return erase(const_iterator(__it)); }
      |                ~~~~~^~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/10/bits/hashtable.h: In member function ‘std::_Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits>::iterator std::_Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits>::erase(std::_Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits>::const_iterator) [with _Key = long long unsigned int; _Value = std::pair<const long long unsigned int, std::shared_ptr<ProxyServer::LinkedSession> >; _Alloc = std::allocator<std::pair<const long long unsigned int, std::shared_ptr<ProxyServer::LinkedSession> > >; _ExtractKey = std::__detail::_Select1st; _Equal = std::equal_to<long long unsigned int>; _H1 = std::hash<long long unsigned int>; _H2 = std::__detail::_Mod_range_hashing; _Hash = std::__detail::_Default_ranged_hash; _RehashPolicy = std::__detail::_Prime_rehash_policy; _Traits = std::__detail::_Hashtable_traits<false, false, true>]’:
/usr/include/c++/10/bits/hashtable.h:1851:5: note: parameter passing for argument of type ‘std::_Hashtable<long long unsigned int, std::pair<const long long unsigned int, std::shared_ptr<ProxyServer::LinkedSession> >, std::allocator<std::pair<const long long unsigned int, std::shared_ptr<ProxyServer::LinkedSession> > >, std::__detail::_Select1st, std::equal_to<long long unsigned int>, std::hash<long long unsigned int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::const_iterator’ {aka ‘std::__detail::_Hashtable_base<long long unsigned int, std::pair<const long long unsigned int, std::shared_ptr<ProxyServer::LinkedSession> >, std::__detail::_Select1st, std::equal_to<long long unsigned int>, std::hash<long long unsigned int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Hashtable_traits<false, false, true> >::const_iterator’} changed in GCC 7.1
 1851 |     _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal,
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1852 |         _H1, _H2, _Hash, _RehashPolicy, _Traits>::
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[ 61%] Building CXX object CMakeFiles/newserv.dir/src/PSOEncryption.cc.o
[ 64%] Building CXX object CMakeFiles/newserv.dir/src/PSOGCObjectGraph.cc.o
[ 66%] Building CXX object CMakeFiles/newserv.dir/src/PSOProtocol.cc.o
[ 69%] Building CXX object CMakeFiles/newserv.dir/src/Quest.cc.o
[ 71%] Building CXX object CMakeFiles/newserv.dir/src/RareItemSet.cc.o
[ 73%] Building CXX object CMakeFiles/newserv.dir/src/ReceiveCommands.cc.o
[ 76%] Building CXX object CMakeFiles/newserv.dir/src/ReceiveSubcommands.cc.o
[ 78%] Building CXX object CMakeFiles/newserv.dir/src/ReplaySession.cc.o
[ 80%] Building CXX object CMakeFiles/newserv.dir/src/SendCommands.cc.o
[ 83%] Building CXX object CMakeFiles/newserv.dir/src/Server.cc.o
[ 85%] Building CXX object CMakeFiles/newserv.dir/src/ServerShell.cc.o
[ 88%] Building CXX object CMakeFiles/newserv.dir/src/ServerState.cc.o
In file included from /usr/include/c++/10/map:60,
                 from /home/pi/programs/newserv/src/ServerState.hh:4,
                 from /home/pi/programs/newserv/src/ServerState.cc:1:
/usr/include/c++/10/bits/stl_tree.h: In member function ‘std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::erase(std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator) [with _Key = long long int; _Val = std::pair<const long long int, std::shared_ptr<Lobby> >; _KeyOfValue = std::_Select1st<std::pair<const long long int, std::shared_ptr<Lobby> > >; _Compare = std::less<long long int>; _Alloc = std::allocator<std::pair<const long long int, std::shared_ptr<Lobby> > >]’:
/usr/include/c++/10/bits/stl_tree.h:1216:14: note: parameter passing for argument of type ‘std::_Rb_tree<long long int, std::pair<const long long int, std::shared_ptr<Lobby> >, std::_Select1st<std::pair<const long long int, std::shared_ptr<Lobby> > >, std::less<long long int>, std::allocator<std::pair<const long long int, std::shared_ptr<Lobby> > > >::const_iterator’ changed in GCC 7.1
 1216 |  _M_erase_aux(__position);
      |  ~~~~~~~~~~~~^~~~~~~~~~~~
/usr/include/c++/10/bits/stl_tree.h: In member function ‘void std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_erase_aux(std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator) [with _Key = long long int; _Val = std::pair<const long long int, std::shared_ptr<Lobby> >; _KeyOfValue = std::_Select1st<std::pair<const long long int, std::shared_ptr<Lobby> > >; _Compare = std::less<long long int>; _Alloc = std::allocator<std::pair<const long long int, std::shared_ptr<Lobby> > >]’:
/usr/include/c++/10/bits/stl_tree.h:2510:5: note: parameter passing for argument of type ‘std::_Rb_tree<long long int, std::pair<const long long int, std::shared_ptr<Lobby> >, std::_Select1st<std::pair<const long long int, std::shared_ptr<Lobby> > >, std::less<long long int>, std::allocator<std::pair<const long long int, std::shared_ptr<Lobby> > > >::const_iterator’ changed in GCC 7.1
 2510 |     _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[ 90%] Building CXX object CMakeFiles/newserv.dir/src/Shell.cc.o
[ 92%] Building CXX object CMakeFiles/newserv.dir/src/StaticGameData.cc.o
[ 95%] Building CXX object CMakeFiles/newserv.dir/src/Text.cc.o
[ 97%] Building CXX object CMakeFiles/newserv.dir/src/Version.cc.o
[100%] Linking CXX executable newserv
[100%] Built target newserv
pi@RasPi4Osoyoo:~/programs/newserv $
PalasX commented 1 year ago

i renamed all the .nsk files to .bak, and newserv loaded up! going to test gamecube connections tomorrow. its late now.

PalasX commented 1 year ago

finally got around to some testing. can't get it to connect with Dolphin, but i've never been able to connect to a local server using the native/HLE dolphin emulated BBA. i suspect im doing something wrong, but i dont know what. pso in dolphin is set for static IP, 255.255.255.0 netmask, and the same IP as the raspi4 running newserv as the DNS, 192.168.1.53. no connection is even logged on the newserv process. i was going to test on actual GC hardware, but its currently in storage. i'll see if i can get a copy of PSOPC up and running later this afternoon.

PalasX commented 1 year ago

can ALMOST connect with PSOPC, but when trying to "enter the lobby" it just disconnects.

I 17583 2022-11-06 11:12:12 - [Commands] Sending to C-5 (version=PC command=04 flag=00)
0000 | 2C 00 04 00 00 00 01 00 00 00 00 00 39 98 AC 82 | ,           9
0010 | 0E 89 2A 49 04 10 00 00 00 00 00 00 FF FF FF FF |   *I
0020 | FF FF FF FF FF FF FF FF FF FF FF FF             |
I 17583 2022-11-06 11:12:12 - [Commands] Sending to C-5 (version=PC command=07 flag=04)
0000 | E0 00 07 04 11 00 00 11 FF FF FF FF 04 00 6E 00 |               n
0010 | 65 00 77 00 73 00 65 00 72 00 76 00 00 00 00 00 | e w s e r v
0020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
0030 | 11 00 00 11 11 22 22 11 04 0F 47 00 6F 00 20 00 |      ""   G o
0040 | 74 00 6F 00 20 00 6C 00 6F 00 62 00 62 00 79 00 | t o   l o b b y
0050 | 00 00 00 00 00 00 00 00 00 00 00 00 11 00 00 11 |
0060 | 11 44 44 11 04 0F 44 00 6F 00 77 00 6E 00 6C 00 |  DD   D o w n l
0070 | 6F 00 61 00 64 00 20 00 71 00 75 00 65 00 73 00 | o a d   q u e s
0080 | 74 00 73 00 00 00 00 00 11 00 00 11 11 88 88 11 | t s
0090 | 04 0F 44 00 69 00 73 00 63 00 6F 00 6E 00 6E 00 |   D i s c o n n
00A0 | 65 00 63 00 74 00 00 00 00 00 00 00 00 00 00 00 | e c t
00B0 | 00 00 00 00 11 00 00 11 11 99 99 11 04 0F 43 00 |               C
00C0 | 6C 00 65 00 61 00 72 00 20 00 6C 00 69 00 63 00 | l e a r   l i c
00D0 | 65 00 6E 00 73 00 65 00 00 00 00 00 00 00 00 00 | e n s e
I 17583 2022-11-06 11:12:12 - [Commands] Received from C-5 (version=PC command=96 flag=00)
0000 | 0C 00 96 00 31 CE 67 63 02 00 00 00             |     1 gc
I 17583 2022-11-06 11:12:12 - [Commands] Sending to C-5 (version=PC command=B1 flag=00)
0000 | 1C 00 B1 00 32 30 32 32 3A 31 31 3A 30 36 3A 20 |     2022:11:06:
0010 | 31 36 3A 31 32 3A 31 32 2E 30 30 30             | 16:12:12.000
I 17583 2022-11-06 11:12:12 - [Commands] Received from C-5 (version=PC command=99 flag=00)
0000 | 04 00 99 00                                     |
I 17583 2022-11-06 11:12:19 - [Commands] Received from C-5 (version=PC command=10 flag=00)
0000 | 0C 00 10 00 11 00 00 11 11 22 22 11             |          ""
I 17583 2022-11-06 11:12:19 - [Commands] Sending to C-5 (version=PC command=97 flag=01)
0000 | 04 00 97 01                                     |
I 17583 2022-11-06 11:12:19 - [Commands] Sending to C-5 (version=PC command=04 flag=00)
0000 | 2C 00 04 00 00 00 01 00 00 00 00 00 39 98 AC 82 | ,           9
0010 | 0E 89 2A 49 04 14 00 00 00 00 00 00 FF FF FF FF |   *I
0020 | FF FF FF FF FF FF FF FF FF FF FF FF             |
I 17583 2022-11-06 11:12:19 - [Commands] Received from C-5 (version=PC command=B1 flag=00)
0000 | 04 00 B1 00                                     |
I 17583 2022-11-06 11:12:19 - [Commands] Sending to C-5 (version=PC command=B1 flag=00)
0000 | 1C 00 B1 00 32 30 32 32 3A 31 31 3A 30 36 3A 20 |     2022:11:06:
0010 | 31 36 3A 31 32 3A 31 39 2E 30 30 30             | 16:12:19.000
I 17583 2022-11-06 11:12:19 - [Commands] Sending to C-5 (version=PC command=19 flag=00)
0000 | 0C 00 19 00 FF FF FF FF F7 13 00 00             |
I 17583 2022-11-06 11:12:19 - [Commands] Received from C-5 (version=PC command=99 flag=00)
0000 | 04 00 99 00                                     |
I 17583 2022-11-06 11:12:19 - [Server] Client disconnected: C-5 on fd 35
PalasX commented 1 year ago

tried connection with dolphin, with the HLE BBA option. goes immediatly from connecting to DNS to Error No.100, Line diconnected, game over.

PalasX commented 1 year ago

update: I was being VERY silly. i had filled out the EXTERNAL ip. when i manually set both internal IP and stack listen IP, then dolphin's BBA HLE on another computer connected to the lobby OK.

So can confirm, buildable on Raspberry Pi 4, using Raspi OS Bullseye, with GCC 10.2.1 for newserv and phosg.

Thanks again for all the help!!!