From 5acc3c864044d0ba49f45e6ce05c51b497f939db Mon Sep 17 00:00:00 2001 From: Moliman Date: Sat, 16 Nov 2024 13:08:17 -0500 Subject: [PATCH] Add support for GOG 1.0.5 Signed-off-by: Moliman --- Livesplit.KatanaZERO/Livesplit.KatanaZERO.asl | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/Livesplit.KatanaZERO/Livesplit.KatanaZERO.asl b/Livesplit.KatanaZERO/Livesplit.KatanaZERO.asl index 58a595e..b5d1c73 100644 --- a/Livesplit.KatanaZERO/Livesplit.KatanaZERO.asl +++ b/Livesplit.KatanaZERO/Livesplit.KatanaZERO.asl @@ -12,6 +12,13 @@ state ("Katana Zero", "GOG 1.0.4") { int statePtr : 0x1AE4578, 0x0, 0x38, 0x8; } +state ("Katana Zero", "GOG 1.0.5") { + int map : 0x1CF7890; + int speedrunData : 0x1CFE518, 0x48, 0x48; + double timer : 0x1ADD168, 0x2C, 0x10, 0x3B4, 0x40; + int statePtr : 0x1AE6638, 0x0, 0x38, 0x8; +} + startup { settings.Add("tape1", true, "1 - Factory"); settings.Add("tape2", true, "2 - Hotel"); @@ -186,14 +193,25 @@ startup { init { switch (modules.First().ModuleMemorySize) { - case 0x1E0E000: version = "Steam 1.0.5"; break; - case 0x1E0B000: version = "GOG 1.0.4"; break; + case 0x1E0E000: + version = "Steam 1.0.5"; + vars.timerNotReady = -1; + break; + case 0x1E0D000: + version = "GOG 1.0.5"; + vars.timerNotReady = -1; + break; + case 0x1E0B000: + version = "GOG 1.0.4"; + vars.timerNotReady = 0; + break; + } vars.timerResetVars = (EventHandler)((s, e) => { vars.tape = 12; while(vars.tape > 1) { - if(game.ReadValue((IntPtr)(current.speedrunData+0x200+0x10*vars.tape)) != -1) + if(game.ReadValue((IntPtr)(current.speedrunData+0x200+0x10*vars.tape)) == vars.timerNotReady) break; --vars.tape; }