state("sonic") { //Game Timer Start byte minutes : "sonic.exe", 0x370EF48; byte seconds : "sonic.exe", 0x370F128; byte centiseconds : "sonic.exe", 0x370EF35; int GameFrames : "sonic.exe", 0x370F108; //Game Timer End //Level Info Start byte level : "sonic.exe", 0x3722DCC; byte gamestatus : "sonic.exe", 0x3722DE4; byte control : "sonic.exe", 0x509fb0; //Level Info End byte music : "sonic.exe", 0x512698; byte act : "sonic.exe", 0x3722DEC; byte lives : "sonic.exe", 0x370EF34; //Char Power Ups Start byte warriorfeather : "sonic.exe", 0x371895A; byte jetanklet : "sonic.exe", 0x37188D5; byte rhythmbadge : "sonic.exe", 0x37188E3; byte shovelclaw : "sonic.exe", 0x3718921; byte fightinggloves : "sonic.exe", 0x3718922; byte lifebelt : "sonic.exe", 0x37189D8; byte booster : "sonic.exe", 0x3718991; byte crystalring : "sonic.exe", 0x3718896; byte lightshoes : "sonic.exe", 0x3718895; byte ancientlight : "sonic.exe", 0x37188A7; //Char Power Ups End //Misc byte character : "sonic.exe", 0x372A2FD; byte bosshealth : "sonic.exe", 0x3858150; } start { if (current.gamestatus == 0x04 && old.gamestatus == 0x16 && current.level == 0x21 && current.lives == 0x04) //starts timer for big { return true; } else if (current.gamestatus == 0x04 && old.gamestatus == 0x16 && current.level == 0x1A && current.lives == 0x04) //starts timer for sonic tails amy { return true; } else if (current.gamestatus == 0x04 && old.gamestatus == 0x01 && current.level == 0x21 && current.lives == 0x04) //starts time for knux and gamma { return true; } } split { if (current.level != old.level && old.level != 0x14 && old.level != 0x11 && old.level != 0x12 && old.level != 0x24 && old.level != 0x25 && current.character != 0x04 && current.control == 0x00 && current.GameFrames > 0x00) //splits on level finish #exclused chaos 4, chaos 6,egg hornet, sky chase act 1 and sky chase act 2 { return true; } else if (current.level == 0x05 && current.character == 0x00 && current.control == 0x00 && old.control == 0x01) //splits for sonic's red mountain { return true; } else if (current.level == 0x07 && current.character == 0x00 && current.music == 0x4B && old.music == 0xFF) //splits for sonic lost world { return true; } else if (current.level == 0x0F && old.music == 0x4B && current.music == 0xFF) //splits for finshing chaos 0 { return true; } else if (current.level == 0x14 && current.bosshealth == 0x00 && old.bosshealth == 0x01) //splits for tails and sonic's egg hornet 0 health { return true; } else if (current.level == 0x11 && current.bosshealth == 0x00 && old.bosshealth == 0x01) //splits for tails, sonic and knux's chaos 4 0 health { return true; } else if (current.level == 0x12 && current.bosshealth == 0x00 && old.bosshealth == 0x01 && current.character == 0x00) //splits for sonic's chaos 6 0 health { return true; } else if (current.level == 0x16 && current.centiseconds == old.centiseconds && current.seconds == old.seconds && current.control == 0x00 && old.control == 0x01 && current.gamestatus == 0x0F && current.bosshealth == 0x00 && old.bosshealth == 0x01) //splits for finishing egg viper { return true; } else if (current.level == 0x25 && current.music == 0xFF && current.control == 0x00 && old.level ==0x25 && current.gamestatus == 0x05 && old.gamestatus == 0x0F) //splits for finishing skychaseact2 { return true; } else if (current.level == 0x24 && current.music == 0xFF && current.control == 0x00 && old.level ==0x24 && current.gamestatus == 0x05 && old.gamestatus == 0x0F) //splits for finshing skychaseact1 { return true; } else if (current.level == 0x26 && current.music == 0x5F && old.music == 0xFF)//splits for sand hill { return true; } else if (current.level == 0x15 && current.bosshealth == 0x00 && old.bosshealth == 0x01) //splits for finishing egg walker { return true; } else if (current.level == 0x09 && current.character == 0x02 && current.music == 0x5F && old.music == 0xFF) //splits for knux casino { return true; } else if (current.level == 0x10 && current.music == 0x21 && old.music == 0xFF) // splits for knux chaos 2 { return true; } else if (current.level != old.level && old.level != 0x14 && old.level != 0x11 && old.level != 0x12 && old.level != 0x24 && old.level != 0x25 && current.control == 0x00 && current.GameFrames > 0x00) //splits on level finish #exclused chaos 4, chaos 6,egg hornet, sky chase act 1 and sky chase act 2 { return true; } else if (current.level == 0x17 && current.centiseconds == old.centiseconds && current.seconds == old.seconds && current.control == 0x00 && old.control == 0x01 && current.gamestatus == 0x0F && current.bosshealth == 0x00 && old.bosshealth == 0x01) //splits for finishing zero { return true; } else if (current.character == 0x04 && current.music == 0x69 && old.music == 0x2D) //splits for bigs twinkle park { return true; } else if (current.character == 0x04 && current.music == 0x35 && old.music == 0x2D) //splits for bigs ice cap { return true; } else if (current.level == 0x01 && current.music == 0x1E && old.music == 0x2D) //splits for bigs emerald coast { return true; } else if (current.level == 0x0C && current.music == 0x4F && old.music == 0x2D) //splits for bigs hot shelter { return true; } else if (current.level == 0x12 && current.character == 0x04 && current.music == 0x4B && old.music == 0xFF) //splits for bigs chaos 6 { return true; } else if (current.level == 0x1D && current.control == 0x00 && current.music == 0x5A && old.music == 0xFF) //splits for touch plane { return true; } else if (current.level == 0x13 && current.bosshealth == 0x00 && old.bosshealth == 0x02) // splits for both perfect chaos act 1 and 2 { return true; } }