1
Fork 0
mirror of https://github.com/redstrate/Kawari.git synced 2025-04-25 00:17:45 +00:00
Commit graph

103 commits

Author SHA1 Message Date
34aa046b21 Fix padding in Player Spawn IPC data
I spent HOURS fixing this, only to realize that it was all offset by 16 bytes. I
hate myself.
2025-03-13 00:02:37 -04:00
7c1a3944e9 Add more fields to ChatMessage IPC 2025-03-12 19:45:15 -04:00
a448df65b4 Handle chat messages
This makes the server not panic and exit when recieving chat messages from the
client, but we only extract the message for now.
2025-03-12 19:34:15 -04:00
b52ff724ab Allow logging out of the client without destroying the world server
This adds support for the IPC packets sent between the client & server when
using the log out feature.
2025-03-12 18:44:05 -04:00
181d127fb5 Spawn the player with at least SOME health 2025-03-12 18:22:25 -04:00
60e4713b96 Add more IPC data types to the size test
It doesn't pass for some, but it's a start.
2025-03-12 18:17:22 -04:00
29954be1a6 Move out most of the large IPC structures 2025-03-12 18:05:41 -04:00
aa6e818bfb Begin moving IPC structures to their own files 2025-03-12 17:47:58 -04:00
4b409e4417 Don't use default features in binrw 2025-03-12 16:58:21 -04:00
68d87c3a42 Add the remaining IPC opcodes to allow you to join a world 2025-03-12 00:32:37 -04:00
7b0c41a478 Fix numerous issues with the client<->zone communication and Oodle
Yet again TemporalStasis is awesome, and it shows that we need two separate
compressors (one for clientbound packets, one for serverbound ones.) I also
updated some opcodes for the latest patch, and support for compressing with
Oodle when sending packets.
2025-03-11 23:52:55 -04:00
7cd5233598 Begin testing IPC packet size 2025-03-11 22:02:49 -04:00
37ae4a63d8 Add more segment types to the size test 2025-03-11 21:56:29 -04:00
7116389afe Fix size of initalization encryption packet, start testing for that 2025-03-11 21:52:46 -04:00
632342c1f0 Rename some fields in packet header 2025-03-11 21:33:43 -04:00
2b5e0a7a48 Add more fields & actions for LobbyCharacterAction
Thanks to TemporalStasis, again.
2025-03-11 21:31:52 -04:00
5bcdadf058 Replace Blowfish implementation with a Rust one
This is a slightly modified version of the one in Physis, with the required
modifications inspired from WorkingRobot's TemporalStatis fork. Thanks so much!
2025-03-11 21:20:47 -04:00
47216153b3 Dummy out Oodle support on the CI 2025-03-10 22:19:31 -04:00
660e12c597 Start implementing some world IPC
This doesn't work yet, but whatever it's a start.
2025-03-10 21:31:21 -04:00
e3886e69da Removing funding information 2025-03-10 21:23:31 -04:00
51c66a4a14 Add support for decompressing Oodle-compressed packets 2025-03-09 12:00:58 -04:00
e5d143d2c6 Add world server, fix reading compression type
This doesn't work yet as we don't implement Oodle decompression, but we at least
start recieving the packets.
2025-03-09 11:07:01 -04:00
1cd68ee1a3 Store session id, handle world join requests
We have yet to implement the world server, so the client gets kicked back to the
main menu immediately right now.
2025-03-09 11:01:06 -04:00
a7f60fab4d Don't add empty service accounts 2025-03-09 10:43:34 -04:00
26e22843c5 Add better names for origin/destination world fields 2025-03-09 10:39:46 -04:00
2649985b32 Fill out more fields of ClientSelectData
Thanks to FFXIVClientStructs, which already has much of this documented.
2025-03-09 10:13:47 -04:00
1013556eba Send ClientSelectData JSON, show character in lobby screen 2025-03-09 09:40:11 -04:00
7613723151 Roll delete into a more general lobby action 2025-03-09 00:20:41 -05:00
c35a5448d1 Add support for character delete packets 2025-03-09 00:06:54 -05:00
3e34020282 Fix various problems with the lobby 2025-03-08 23:49:53 -05:00
b127d44ddf Move world id into a constant value 2025-03-08 23:40:58 -05:00
0c5c784d0f Split up and move lobby packet handling 2025-03-08 23:24:09 -05:00
ca5fa8e8b9 Fix various Clippy warnings 2025-03-08 23:07:55 -05:00
9ca46c53cd Mention the lobby server in the README 2025-03-08 22:58:45 -05:00
1f43318add Begin sending lobby information
This now puts the client onto the real lobby screen, not sure how much actually
works yet.
2025-03-08 22:55:47 -05:00
00c5f4a10e Fix various issues with sending service account data
I did a bunch of things wrong, oops. The client somehow error corrected itself
into never requesting the character list, lol
2025-03-08 22:17:26 -05:00
da5f5f1276 Move more IPC-related stuff out of packet module 2025-03-08 22:05:20 -05:00
970d756809 Move IPC opcodes to their own enum & module 2025-03-08 22:03:28 -05:00
6aed610276 Move more code out of packet module 2025-03-08 21:56:44 -05:00
dd83b335dd Re-run format, re-organize some code and run Clippy auto-fix 2025-03-08 21:54:03 -05:00
aacd128a9e Add support for encrypting outgoing packets, send service account list
This gets us to the lobby screen, albiet it's currently empty.
2025-03-08 21:53:10 -05:00
f81f5ce09d Fill out ClientVersionInfo IPC, add KeepAlive packet response
Now the server is somewhat functional, we don't get to the lobby screen yet but
at least get a loading indicator in the client.
2025-03-08 21:23:33 -05:00
942a64cd7b Fix encrypting/decrypting packets, vendor Sapphire Blowfish implementation
I ended up just stealing this from iolite, which in turn took it from Sapphire.
I tried for a few hours to get a Rust Blowfish implementation going, but the one
from Physis didn't work. I'll try again later.
2025-03-08 21:13:00 -05:00
64b1ea9280 More attempts at packet decryption 2025-03-08 16:39:13 -05:00
51e0f0680e Move encryption stuffs into their own module 2025-03-08 16:10:00 -05:00
cdc250fca1 Begin decrypting packets, add IPC segment type 2025-03-08 16:08:25 -05:00
21419aa09c Add missing connection types 2025-03-08 15:33:58 -05:00
2f996f0012 Emit a better error message on packet parsing failure 2025-03-08 15:29:38 -05:00
3caf9d38c1 Try sending a initialize encryption response packet 2025-03-08 15:27:28 -05:00
0ec0ed34ec Parse the encryption initialization packet 2025-03-08 14:38:31 -05:00