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