From dbd8850ad59a35fdc61bb806eb90916f0778f579 Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Mon, 31 Mar 2025 20:48:31 -0400 Subject: [PATCH] Initial update for 7.20h This updates the set of opcodes and patch version for today's patch. Not everything is working yet and there's a few missing ones, but overall it looks good. --- README.md | 2 +- resources/opcodes.json | 82 +++++++++++++++++++++--------------------- src/lib.rs | 12 +++---- 3 files changed, 48 insertions(+), 48 deletions(-) diff --git a/README.md b/README.md index d41a1da..893f1a0 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ Kawari is primarily a research project, but also a way to preserve the modern cl ## Supported Game Version -Kawari currently supports patch **7.2**. Kawari will never "roll back" to a previous patch. There are other servers (e.g. Sapphire) that support older versions of the game. As Kawari moves to a new major patch, the previous patch is moved to a branch (e.g. 7.1) These branches are for archival; effectively unsupported, but still useful. +Kawari currently supports patch **7.20h**. Kawari will never "roll back" to a previous patch. There are other servers (e.g. Sapphire) that support older versions of the game. As Kawari moves to a new major patch, the previous patch is moved to a branch (e.g. 7.1) These branches are for archival; effectively unsupported, but still useful. Only the Global region is supported. Only the Windows client is supported. Supporting other regions or clients are currently out of scope of this project. diff --git a/resources/opcodes.json b/resources/opcodes.json index 95ba68d..d249983 100644 --- a/resources/opcodes.json +++ b/resources/opcodes.json @@ -7,37 +7,37 @@ }, { "name": "InitZone", - "opcode": 699, + "opcode": 636, "size": 112 }, { "name": "ActorControlSelf", - "opcode": 367, + "opcode": 178, "size": 32 }, { "name": "PlayerStats", - "opcode": 401, + "opcode": 308, "size": 144 }, { "name": "PlayerSetup", - "opcode": 218, + "opcode": 990, "size": 2808 }, { "name": "UpdateClassInfo", - "opcode": 119, + "opcode": 633, "size": 16 }, { "name": "PlayerSpawn", - "opcode": 817, + "opcode": 932, "size": 664 }, { "name": "InitResponse", - "opcode": 547, + "opcode": 240, "size": 16 }, { @@ -47,22 +47,22 @@ }, { "name": "ActorSetPos", - "opcode": 136, + "opcode": 197, "size": 24 }, { "name": "ServerChatMessage", - "opcode": 837, + "opcode": 712, "size": 776 }, { "name": "Unk8", - "opcode": 308, + "opcode": 289, "size": 808 }, { "name": "LinkShellInformation", - "opcode": 564, + "opcode": 112, "size": 456 }, { @@ -72,7 +72,7 @@ }, { "name": "PrepareZoning", - "opcode": 364, + "opcode": 190, "size": 16 }, { @@ -82,114 +82,114 @@ }, { "name": "Unk16", - "opcode": 939, + "opcode": 456, "size": 136 }, { "name": "ActorControl", - "opcode": 520, + "opcode": 623, "size": 24 }, { "name": "ActorMove", - "opcode": 345, + "opcode": 401, "size": 16 }, { "name": "Unk17", - "opcode": 673, + "opcode": 466, "size": 104 }, { "name": "SocialList", - "opcode": 876, + "opcode": 651, "size": 1136 }, { "name": "NpcSpawn", - "opcode": 319, + "opcode": 860, "size": 656 }, { "name": "StatusEffectList", - "opcode": 839, + "opcode": 424, "size": 384 }, { "name": "WeatherChange", - "opcode": 373, + "opcode": 900, "size": 8 }, { "name": "ItemInfo", - "opcode": 850, + "opcode": 195, "size": 64 }, { "name": "ContainerInfo", - "opcode": 566, + "opcode": 403, "size": 16 }, { "name": "EventPlay", - "opcode": 991, + "opcode": 147, "size": 40 }, { "name": "EventStart", - "opcode": 955, + "opcode": 610, "size": 24 }, { "name": "UpdateHpMpTp", - "opcode": 325, + "opcode": 162, "size": 8 }, { "name": "ActionResult", - "opcode": 785, + "opcode": 508, "size": 124 } ], "ClientZoneIpcType": [ { "name": "InitRequest", - "opcode": 683, + "opcode": 959, "size": 120 }, { "name": "FinishLoading", - "opcode": 427, + "opcode": 912, "size": 72 }, { "name": "Unk1", - "opcode": 868, + "opcode": 387, "size": 32 }, { "name": "Unk2", - "opcode": 472, + "opcode": 935, "size": 16 }, { "name": "Unk3", - "opcode": 687, + "opcode": 240, "size": 8 }, { "name": "Unk4", - "opcode": 376, + "opcode": 929, "size": 8 }, { "name": "SetSearchInfoHandler", - "opcode": 522, + "opcode": 405, "size": 8 }, { "name": "Unk5", - "opcode": 547, + "opcode": 629, "size": 8 }, { @@ -199,7 +199,7 @@ }, { "name": "UpdatePositionHandler", - "opcode": 561, + "opcode": 675, "size": 24 }, { @@ -214,22 +214,22 @@ }, { "name": "ChatMessage", - "opcode": 375, + "opcode": 293, "size": 1056 }, { "name": "GameMasterCommand", - "opcode": 905, + "opcode": 939, "size": 32 }, { "name": "EnterZoneLine", - "opcode": 447, + "opcode": 136, "size": 24 }, { "name": "ActionRequest", - "opcode": 865, + "opcode": 643, "size": 32 }, { @@ -239,7 +239,7 @@ }, { "name": "Unk17", - "opcode": 466, + "opcode": 985, "size": 32 }, { @@ -259,7 +259,7 @@ }, { "name": "InventoryModify", - "opcode": 318, + "opcode": 564, "size": 112 } ], diff --git a/src/lib.rs b/src/lib.rs index e6be6b7..4b2c7f1 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -46,14 +46,14 @@ pub const RECEIVE_BUFFER_SIZE: usize = 32000; pub const SUPPORTED_BOOT_VERSION: Version = Version("2025.01.10.0000.0001"); /// Supported game version. -pub const SUPPORTED_GAME_VERSION: Version = Version("2025.03.18.0000.0000"); +pub const SUPPORTED_GAME_VERSION: Version = Version("2025.03.27.0000.0000"); const SUPPORTED_EXPAC_VERSIONS: [(&str, Version); 5] = [ - ("ex1", Version("2025.03.14.0000.0000")), - ("ex2", Version("2025.03.18.0000.0000")), - ("ex3", Version("2025.03.18.0000.0000")), - ("ex4", Version("2025.03.18.0000.0000")), - ("ex5", Version("2025.03.18.0000.0000")), + ("ex1", Version("2025.03.27.0000.0000")), + ("ex2", Version("2025.03.27.0000.0000")), + ("ex3", Version("2025.03.27.0000.0000")), + ("ex4", Version("2025.03.27.0000.0000")), + ("ex5", Version("2025.03.27.0000.0000")), ]; /// Supported expansion versions.