dregu / livesplit-spelunky2 Goto Github PK
View Code? Open in Web Editor NEWLiveSplit Autosplitter for Spelunky 2
License: MIT License
LiveSplit Autosplitter for Spelunky 2
License: MIT License
I've noticed that sometimes splits don't happen, with an exception being thrown (see debug prints below). I have things configured for 'normal' speed categories (e.g. any%).
I suspect the issue is vars.journal
defaults to a List<byte>
which can't be cast to System.Byte[]
(you could call ToArray()
tho). This cast happens happens whenever saveptr
wasn't found; ReadBytes
returns an array. Notably, my settings don't have journal
or tracker
enabled (complete settings further down), so I expect initTracker()
is only called during init.
Log captured with LiveSplit 1.8.16 and unmodified Spelunky 1.21.0c.
00000005 4.60402822 [9472] LiveSplit.exe Information: 0 :
00000006 4.60422421 [9472] [ASL] Loading new script: C:\Users\mauve\Manual Apps\LiveSplit\Components\LiveSplit-Spelunky2.asl
00000007 4.60769415 [9472] LiveSplit.exe Error: 0 :
00000008 4.60785961 [9472] HRESULT: [0x8007001E], Module: [SharpDX.DirectInput], ApiCode: [DIERR_INPUTLOST/InputLost], Message: The system cannot read from the specified device.
00000009 4.60785961 [9472]
00000010 4.60785961 [9472]
00000011 4.60785961 [9472] at SharpDX.Result.CheckError()
00000012 4.60785961 [9472] at SharpDX.DirectInput.Device.GetDeviceData(Int32 arg0, IntPtr arg1, Int32& arg2, Int32 arg3)
00000013 4.60785961 [9472] at SharpDX.DirectInput.CustomDevice`3.GetBufferedData()
00000014 4.60785961 [9472] at LiveSplit.Model.Input.GamepadHook.Poll()
00000015 7.30919123 [9472] LiveSplit.exe Information: 0 :
00000016 7.30989122 [9472] [ASL/66572856] Running startup
00000468 147.67013550 [9472] LiveSplit.exe Information: 0 :
00000469 147.67015076 [9472] [ASL/66572856] Connected to game: Spel2 (using default state descriptor)
00000470 147.67109680 [9472] LiveSplit.exe Information: 0 :
00000471 147.67111206 [9472] [ASL/66572856] Initializing
00000477 148.91052246 [9472] LiveSplit.exe Information: 0 :
00000478 148.91061401 [9472] AutoSplitter: 7ff6e0fa6df0
00000491 150.93234253 [9472] LiveSplit.exe Information: 0 :
00000492 150.93243408 [9472] [ASL/66572856] Init completed, running main methods
00000529 153.56692505 [9472] LiveSplit.exe Information: 0 :
00000530 153.56697083 [9472] Characters: 0 -> 20
00000531 153.57546997 [9472] LiveSplit.exe Information: 0 :
00000532 153.57550049 [9472] Shortcuts: 0 -> 6
00000575 164.65191650 [9472] LiveSplit.exe Information: 0 :
00000576 164.65203857 [9472] Screen: 0 -> 1
00000577 164.66148376 [9472] LiveSplit.exe Information: 0 :
00000578 164.66169739 [9472] World: 0 -> 1
00000579 164.66809082 [9472] LiveSplit.exe Information: 0 :
00000580 164.66825867 [9472] Level: 0 -> 1
00000625 187.72633362 [9472] LiveSplit.exe Information: 0 :
00000626 187.72644043 [9472] Screen: 1 -> 2
00000627 201.80374146 [9472] LiveSplit.exe Information: 0 :
00000628 201.80915833 [9472] Screen: 2 -> 3
00000709 257.87567139 [9472] LiveSplit.exe Information: 0 :
00000710 257.87579346 [9472] Screen: 3 -> 4
00000711 259.60543823 [9472] LiveSplit.exe Information: 0 :
00000712 259.60562134 [9472] Screen: 4 -> 9
00000713 262.86965942 [9472] LiveSplit.exe Information: 0 :
00000714 262.86972046 [9472] Screen: 9 -> 11
00000715 267.81219482 [9472] LiveSplit.exe Information: 0 :
00000716 267.81228638 [9472] Door frame: 0 -> 6622
00000717 274.80548096 [9472] LiveSplit.exe Information: 0 :
00000718 274.80563354 [9472] Screen: 11 -> 12
00000719 275.45874023 [9472] LiveSplit.exe Information: 0 :
00000720 275.45889282 [9472] Start: Level
00000721 275.61199951 [9472] LiveSplit.exe Error: 0 :
00000722 275.61212158 [9472] Exception thrown: 'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException' in 'split' method:
00000723 275.61212158 [9472] Cannot convert type 'System.Collections.Generic.List<byte>' to 'byte[]'
00000724 275.61212158 [9472]
00000725 275.61212158 [9472] at ASL line 158 in 'split'
00000726 275.61212158 [9472]
00000727 275.61212158 [9472] at LiveSplit.ASL.ASLMethod.Call(LiveSplitState timer, ExpandoObject vars, String& version, Double& refreshRate, Object settings, ExpandoObject old, ExpandoObject current, Process game)
00000728 275.61212158 [9472] at LiveSplit.ASL.ASLScript.RunMethod(ASLMethod method, LiveSplitState state, String& version)
00000729 275.61212158 [9472] at LiveSplit.ASL.ASLScript.DoUpdate(LiveSplitState state)
00000730 275.61212158 [9472] at LiveSplit.UI.Components.ASLComponent.UpdateScript()
00000731 275.63482666 [9472] LiveSplit.exe Error: 0 :
00000732 275.63500977 [9472] Exception thrown: 'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException' in 'split' method:
00000733 275.63500977 [9472] Cannot convert type 'System.Collections.Generic.List<byte>' to 'byte[]'
00000734 275.63500977 [9472]
00000735 275.63500977 [9472] at ASL line 158 in 'split'
00000736 275.63500977 [9472]
00000737 275.63500977 [9472] at LiveSplit.ASL.ASLMethod.Call(LiveSplitState timer, ExpandoObject vars, String& version, Double& refreshRate, Object settings, ExpandoObject old, ExpandoObject current, Process game)
00000738 275.63500977 [9472] at LiveSplit.ASL.ASLScript.RunMethod(ASLMethod method, LiveSplitState state, String& version)
00000739 275.63500977 [9472] at LiveSplit.ASL.ASLScript.DoUpdate(LiveSplitState state)
00000740 275.63500977 [9472] at LiveSplit.UI.Components.ASLComponent.UpdateScript()
Complete settings
<AutoSplitterSettings>
<Version>1.5</Version>
<ScriptPath>C:\Users\mauve\Manual Apps\LiveSplit\Components\LiveSplit-Spelunky2.asl</ScriptPath>
<Start>True</Start>
<Reset>True</Reset>
<Split>True</Split>
<CustomSettings>
<Setting id="st" type="bool">True</Setting>
<Setting id="stlevel" type="bool">True</Setting>
<Setting id="stast" type="bool">False</Setting>
<Setting id="stdoor" type="bool">False</Setting>
<Setting id="sp" type="bool">True</Setting>
<Setting id="trans" type="bool">True</Setting>
<Setting id="world" type="bool">False</Setting>
<Setting id="tiamat" type="bool">True</Setting>
<Setting id="hundun" type="bool">True</Setting>
<Setting id="co" type="bool">True</Setting>
<Setting id="shortcut" type="bool">False</Setting>
<Setting id="character" type="bool">False</Setting>
<Setting id="characters" type="bool">False</Setting>
<Setting id="journal" type="bool">False</Setting>
<Setting id="rs" type="bool">True</Setting>
<Setting id="rsrestart" type="bool">True</Setting>
<Setting id="rsast" type="bool">False</Setting>
<Setting id="rsdata" type="bool">False</Setting>
<Setting id="rsmenu" type="bool">True</Setting>
<Setting id="rstitle" type="bool">True</Setting>
<Setting id="pacifist" type="bool">False</Setting>
<Setting id="tm" type="bool">True</Setting>
<Setting id="tmforce" type="bool">True</Setting>
<Setting id="ms" type="bool">True</Setting>
<Setting id="tracker" type="bool">False</Setting>
</CustomSettings>
</AutoSplitterSettings>
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.