1
Fork 0
mirror of https://github.com/redstrate/Kawari.git synced 2025-04-22 15:27:44 +00:00
Commit graph

87 commits

Author SHA1 Message Date
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
1ef412b420 Add credits to README 2025-03-08 14:10:52 -05:00
66ef395afc Begin parsing the packet header 2025-03-08 14:09:57 -05:00
5f0d6cc425 Dump unknown packets when encountered 2025-03-08 13:58:24 -05:00
b5afff068a Add dummy lobby server
This doesn't respond or read anything yet, it's just for testing.
2025-03-08 13:51:50 -05:00
40ef6b8193 Run cargo fmt 2025-03-08 13:27:41 -05:00
f7a5940f20 Don't crash if no patch files are provided 2025-03-08 13:24:14 -05:00
5dc1178cd3 Update to Rust edition 2024 2025-03-08 13:20:22 -05:00
da6a5424d1 Begin sending patch lists when verifying boot files
It's completely unusable right now, but this is just to showcase some
progress.
2024-06-29 15:06:48 -04:00
e1bfe4ee25 Run tests on the CI 2024-06-29 15:02:21 -04:00
bacd83477c Add support for writing boot patch lists, fill out more data 2024-06-29 15:02:15 -04:00
c1ad0c023c Add configurable boot patch location, fix verifying boot components
And more, this is mostly laying the groundwork for serving patch files.
2024-06-29 14:44:40 -04:00
91e80a36f8 Fix typos in README 2024-06-29 14:16:27 -04:00
3e3e36a05e Rename webpage titles and only mention "Kawari"
Obviously this shouldn't advertise itself as the real game.
2024-06-29 14:14:51 -04:00
5f2617ef71 Add world status webpage 2024-06-29 14:14:07 -04:00
dbf4a5e642 Add kawari-web to run.sh 2024-06-29 14:13:53 -04:00
891e871b47 Simplify get_login_status and get_world_status 2024-06-29 14:07:44 -04:00