-
Notifications
You must be signed in to change notification settings - Fork 0
/
autosplit.asl
61 lines (54 loc) · 1.41 KB
/
autosplit.asl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
state("supercow", "Aug03 build")
{
float load: 0x12DBA4;
int anim: 0x1033EB8;
int lifes: 0xCE28C;
}
state("supercow", "Aug23 build")
{
float load: 0x12DBA4;
int anim: 0x1033EC8;
int lifes: 0xCE294;
}
state("supercow", "Sep26-Nov13 build")
{
float load: 0x12A984;
int anim: 0x1030CC8;
int lifes: 0xCA2D4;
}
startup
{
settings.Add("main", true, "Any");
settings.SetToolTip("main", "Autosplit for all categories except Bad_Ending%");
settings.Add("bad", false, "Bad Ending");
settings.SetToolTip("bad", "Autosplit for Bad_Ending% category");
}
// Aug03: Memory Size - 17047552, Entry Point - 4654650
// Aug23: Memory Size - 17047552, Entry Point - 4654826
// Sep26: Memory Size - 17035264
// Nov13: Memory Size - 17035264
init
{
var module = modules.First();
var memsize = module.ModuleMemorySize;
var entrypoint = (int)module.EntryPointAddress;
if (memsize == 17047552 && entrypoint == 4654650)
version = "Aug03 build";
else if (memsize == 17047552 && entrypoint == 4654826)
version = "Aug23 build";
else if (memsize == 17035264)
version = "Sep26-Nov13 build";
else
version = "Unknown build";
}
start
{ return current.load == 0 && old.load != 0; }
split
{
bool split = false;
if (settings["main"])
{ split = current.anim == 14 && old.anim != 14; }
else if(settings["bad"])
{ split = current.lifes == old.lifes - 1; }
return split;
}