state("KINGDOM HEARTS II FINAL MIX", "EPIC-1.0.0.10") { bool load : "KINGDOM HEARTS II FINAL MIX.exe", 0x8EC053; byte black: "KINGDOM HEARTS II FINAL MIX.exe", 0xABAE47; bool saveload: "KINGDOM HEARTS II FINAL MIX.exe", 0xBEE0D4; bool fightend: "KINGDOM HEARTS II FINAL MIX.exe", 0xAD8E40; byte titlescreen: "KINGDOM HEARTS II FINAL MIX.exe", 0x713438; byte soraHP: "KINGDOM HEARTS II FINAL MIX.exe", 0x2A23018; short storyHP: "KINGDOM HEARTS II FINAL MIX.exe", 0x2A22DA0; byte cloneCount: "KINGDOM HEARTS II FINAL MIX.exe", 0x2A0F4C8; short soraGauge: "KINGDOM HEARTS II FINAL MIX.exe", 0x2A0F5BA; short medalTimer: "KINGDOM HEARTS II FINAL MIX.exe", 0x25B9594; byte marluxiaHitCount: "KINGDOM HEARTS II FINAL MIX.exe", 0x25901D4; byte worldID: "KINGDOM HEARTS II FINAL MIX.exe", 0x716DF8; byte roomID: "KINGDOM HEARTS II FINAL MIX.exe", 0x716DF9; byte eventID1: "KINGDOM HEARTS II FINAL MIX.exe", 0x716DFC; byte eventID2: "KINGDOM HEARTS II FINAL MIX.exe", 0x716DFE; byte eventID3: "KINGDOM HEARTS II FINAL MIX.exe", 0x716E00; byte newgame: "KINGDOM HEARTS II FINAL MIX.exe", 0xBEE1A8; int tempMemBank: "KINGDOM HEARTS II FINAL MIX.exe", 0xBEE1B0; byte Mush1: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD1C8; byte Mush2: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD1D0; short Mush3: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD1D8; byte Mush4: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD1E0; short Mush5: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD1E8; short Mush6: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD1F0; short Mush7: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD1F8; byte Mush8: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD200; byte Mush9: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD208; short Mush10: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD210; short Mush11: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD218; byte Mush12: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD220; byte GreatMawRoomFlag: "KINGDOM HEARTS II FINAL MIX.exe", 0x9A9950; } state("KINGDOM HEARTS II FINAL MIX", "EPIC-1.0.0.9") { bool load : "KINGDOM HEARTS II FINAL MIX.exe", 0x8EBFF3; byte black: "KINGDOM HEARTS II FINAL MIX.exe", 0xABAE07; bool saveload: "KINGDOM HEARTS II FINAL MIX.exe", 0xBEE094; bool fightend: "KINGDOM HEARTS II FINAL MIX.exe", 0xAD8E00; byte titlescreen: "KINGDOM HEARTS II FINAL MIX.exe", 0x713438; byte soraHP: "KINGDOM HEARTS II FINAL MIX.exe", 0x2A22FD8; short storyHP: "KINGDOM HEARTS II FINAL MIX.exe", 0x2A22D60; byte cloneCount: "KINGDOM HEARTS II FINAL MIX.exe", 0x2A0F488; short soraGauge: "KINGDOM HEARTS II FINAL MIX.exe", 0x2A0F57A; short medalTimer: "KINGDOM HEARTS II FINAL MIX.exe", 0x25B9554; byte marluxiaHitCount: "KINGDOM HEARTS II FINAL MIX.exe", 0x2590194; byte worldID: "KINGDOM HEARTS II FINAL MIX.exe", 0x716DF8; byte roomID: "KINGDOM HEARTS II FINAL MIX.exe", 0x716DF9; byte eventID1: "KINGDOM HEARTS II FINAL MIX.exe", 0x716DFC; byte eventID2: "KINGDOM HEARTS II FINAL MIX.exe", 0x716DFE; byte eventID3: "KINGDOM HEARTS II FINAL MIX.exe", 0x716E00; byte newgame: "KINGDOM HEARTS II FINAL MIX.exe", 0xBEE168; int tempMemBank: "KINGDOM HEARTS II FINAL MIX.exe", 0xBEE0F0; byte Mush1: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD188; byte Mush2: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD190; short Mush3: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD198; byte Mush4: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD1A0; short Mush5: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD1A8; short Mush6: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD1D0; short Mush7: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD1D8; byte Mush8: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD1E0; byte Mush9: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD1E8; short Mush10: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD1F0; short Mush11: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD1F8; byte Mush12: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD200; byte GreatMawRoomFlag: "KINGDOM HEARTS II FINAL MIX.exe", 0x9A9910; } state("KINGDOM HEARTS II FINAL MIX", "STEAM-1.0.0.1") { bool load : "KINGDOM HEARTS II FINAL MIX.exe", 0x8EC543; byte black: "KINGDOM HEARTS II FINAL MIX.exe", 0xABB347; bool saveload: "KINGDOM HEARTS II FINAL MIX.exe", 0xBEE5D4; bool fightend: "KINGDOM HEARTS II FINAL MIX.exe", 0xAD9340; byte titlescreen: "KINGDOM HEARTS II FINAL MIX.exe", 0x7169B4; byte soraHP: "KINGDOM HEARTS II FINAL MIX.exe", 0x2A23518; short storyHP: "KINGDOM HEARTS II FINAL MIX.exe", 0x2A232A0; byte cloneCount: "KINGDOM HEARTS II FINAL MIX.exe", 0x2A0F9C8; short soraGauge: "KINGDOM HEARTS II FINAL MIX.exe", 0x2A0FABA; short medalTimer: "KINGDOM HEARTS II FINAL MIX.exe", 0x25B9BF4; byte marluxiaHitCount: "KINGDOM HEARTS II FINAL MIX.exe", 0x2590894; byte worldID: "KINGDOM HEARTS II FINAL MIX.exe", 0x717008; byte roomID: "KINGDOM HEARTS II FINAL MIX.exe", 0x717009; byte eventID1: "KINGDOM HEARTS II FINAL MIX.exe", 0x71700C; byte eventID2: "KINGDOM HEARTS II FINAL MIX.exe", 0x71700E; byte eventID3: "KINGDOM HEARTS II FINAL MIX.exe", 0x717010; byte newgame: "KINGDOM HEARTS II FINAL MIX.exe", 0xBEE6A8; int tempMemBank: "KINGDOM HEARTS II FINAL MIX.exe", 0xBEE6B0; byte Mush1: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD6C8; byte Mush2: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD6D0; short Mush3: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD6D8; byte Mush4: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD6E0; short Mush5: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD6E8; short Mush6: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD6F0; short Mush7: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD6F8; byte Mush8: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD700; byte Mush9: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD708; short Mush10: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD710; short Mush11: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD718; byte Mush12: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD720; byte GreatMawRoomFlag: "KINGDOM HEARTS II FINAL MIX.exe", 0x9A9E50; } state("KINGDOM HEARTS II FINAL MIX", "STEAM-1.0.0.2") { bool load : "KINGDOM HEARTS II FINAL MIX.exe", 0x8EC5B3; byte black: "KINGDOM HEARTS II FINAL MIX.exe", 0xABB3C7; bool saveload: "KINGDOM HEARTS II FINAL MIX.exe", 0xBEE654; bool fightend: "KINGDOM HEARTS II FINAL MIX.exe", 0xAD93C0; byte titlescreen: "KINGDOM HEARTS II FINAL MIX.exe", 0x7169B4; byte soraHP: "KINGDOM HEARTS II FINAL MIX.exe", 0x2A23598; short storyHP: "KINGDOM HEARTS II FINAL MIX.exe", 0x2A23320; byte cloneCount: "KINGDOM HEARTS II FINAL MIX.exe", 0x2A0FA48; short soraGauge: "KINGDOM HEARTS II FINAL MIX.exe", 0x2A0FB3A; short medalTimer: "KINGDOM HEARTS II FINAL MIX.exe", 0x25B9C74; byte marluxiaHitCount: "KINGDOM HEARTS II FINAL MIX.exe", 0x2590914; byte worldID: "KINGDOM HEARTS II FINAL MIX.exe", 0x717008; byte roomID: "KINGDOM HEARTS II FINAL MIX.exe", 0x717009; byte eventID1: "KINGDOM HEARTS II FINAL MIX.exe", 0x71700C; byte eventID2: "KINGDOM HEARTS II FINAL MIX.exe", 0x71700E; byte eventID3: "KINGDOM HEARTS II FINAL MIX.exe", 0x717010; byte newgame: "KINGDOM HEARTS II FINAL MIX.exe", 0xBEE728; int tempMemBank: "KINGDOM HEARTS II FINAL MIX.exe", 0xBEE730; byte Mush1: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD748; byte Mush2: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD750; short Mush3: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD758; byte Mush4: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD760; short Mush5: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD768; short Mush6: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD770; short Mush7: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD778; byte Mush8: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD780; byte Mush9: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD788; short Mush10: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD790; short Mush11: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD798; byte Mush12: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AD7A0; byte GreatMawRoomFlag: "KINGDOM HEARTS II FINAL MIX.exe", 0x9A9ED0; } state("KINGDOM HEARTS II FINAL MIX", "STEAM-1.0.0.1JP") { bool load : "KINGDOM HEARTS II FINAL MIX.exe", 0x8EB543; byte black: "KINGDOM HEARTS II FINAL MIX.exe", 0xABA347; bool saveload: "KINGDOM HEARTS II FINAL MIX.exe", 0xBED5D4; bool fightend: "KINGDOM HEARTS II FINAL MIX.exe", 0xAD8340; byte titlescreen: "KINGDOM HEARTS II FINAL MIX.exe", 0x7159B4; byte soraHP: "KINGDOM HEARTS II FINAL MIX.exe", 0x2A22518; short storyHP: "KINGDOM HEARTS II FINAL MIX.exe", 0x2A222A0; byte cloneCount: "KINGDOM HEARTS II FINAL MIX.exe", 0x2A0E9C8; short soraGauge: "KINGDOM HEARTS II FINAL MIX.exe", 0x2A0EABA; short medalTimer: "KINGDOM HEARTS II FINAL MIX.exe", 0x25B8BF4; byte marluxiaHitCount: "KINGDOM HEARTS II FINAL MIX.exe", 0x258F894; byte worldID: "KINGDOM HEARTS II FINAL MIX.exe", 0x716008; byte roomID: "KINGDOM HEARTS II FINAL MIX.exe", 0x716009; byte eventID1: "KINGDOM HEARTS II FINAL MIX.exe", 0x71600C; byte eventID2: "KINGDOM HEARTS II FINAL MIX.exe", 0x71600E; byte eventID3: "KINGDOM HEARTS II FINAL MIX.exe", 0x716010; byte newgame: "KINGDOM HEARTS II FINAL MIX.exe", 0xBED6A8; int tempMemBank: "KINGDOM HEARTS II FINAL MIX.exe", 0xBED6B0; byte Mush1: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AC6C8; byte Mush2: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AC6D0; short Mush3: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AC6D8; byte Mush4: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AC6E0; short Mush5: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AC6E8; short Mush6: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AC6F0; short Mush7: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AC6F8; byte Mush8: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AC700; byte Mush9: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AC708; short Mush10: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AC710; short Mush11: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AC718; byte Mush12: "KINGDOM HEARTS II FINAL MIX.exe", 0x9AC720; byte GreatMawRoomFlag: "KINGDOM HEARTS II FINAL MIX.exe", 0x9A8E50; } init { timer.IsGameTimePaused = false; vars.splitTimer = 0; vars.startCounter = 0; vars.WorldSplitTrigger = 0; Thread.Sleep(4000); var scanner = new SignatureScanner (game, modules.First().BaseAddress, modules.First().ModuleMemorySize); var target = new SigScanTarget(0, "4B 48 32 4A 3A"); //"KH2J:" var offset = scanner.Scan(target).ToInt64() - modules.First().BaseAddress.ToInt64(); switch (offset.ToString("X")){ case "9A9330": //Epic 1.0.0.10 version = "EPIC-1.0.0.10"; break; case "9A92F0": //Epic 1.0.0.9 version = "EPIC-1.0.0.9"; break; case "9A98B0": //Steam 1.0.0.2 or Steam 1.0.0.2_JP version = "STEAM-1.0.0.2"; break; case "9A9830": //Steam 1.0.0.1 version = "STEAM-1.0.0.1"; break; case "9A8830": // Steam 1.0.0.1_JP version = "STEAM-1.0.0.1JP"; break; default: version = "!VNF! "+ offset.ToString("X"); break; } //print("The Game's base address is:"+modules.First().BaseAddress.ToString()+" and "+ modules.First().ModuleMemorySize.ToString()); print(version+" "+offset.ToString("X")); } startup { vars.booting = false; settings.Add("startREADME", false, "README: Auto-Start (Hover Over)"); settings.SetToolTip("startREADME", "To Enable: Click the button ABOVE called 'Start'."+ "\nOnly works when starting from the main menu."+ "\nMake sure to reset before selecting New Game."+ "\nSet timer to start at 0.31 for Any% (From Edit Splits)."); settings.Add("splitREADME", false, "README: Auto-Split (Hover Over)"); settings.SetToolTip("splitREADME", "To Enable: Click the button ABOVE called 'Split'."+ "\nSelect the category you wish to run, the desired worlds, "+ "as well as the world's ending split."); settings.Add("Instructions 4", false, "--------------------------------"); settings.Add("any", false, "Any%"); settings.Add("STT", true, "Simulated Twilight Town", "any"); settings.Add("02-04-4E", false, "Seifer", "STT"); settings.Add("02-0E-80", false, "The Old Mansion Dusk", "STT"); settings.Add("02-06-5B", false, "Mail Delivery", "STT"); settings.Add("02-20-9A", false, "Station of Serenity Dusks", "STT"); settings.Add("02-22-9D", false, "Twilight Thorn", "STT"); settings.Add("02-05-54", false, "Hayner", "STT"); settings.Add("02-05-55", false, "Vivi", "STT"); settings.Add("02-05-57", false, "Axel I", "STT"); settings.Add("02-0C-7D", false, "7 Wonders: Bag", "STT"); settings.Add("02-14-89", true , "Axel II", "STT"); settings.Add("TT1", true, "Twilight Town 1", "any"); settings.Add("02-08-6C", false, "Station Plaza Nobodies","TT1"); settings.Add("02-19-95", false, "Tower: Entryway Heartless","TT1"); settings.Add("02-1D-98", false, "Tower: Star Chamber Heartless","TT1"); settings.Add("02-1E-99", false, "Tower: Moon Chamber Heartless","TT1"); settings.Add("02-1C-04", true , "Leaving Tower (on the Door)","TT1"); settings.Add("02-1B-04", true , "Leaving Tower (Cutscene leaving Tower)","TT1"); settings.Add("HB1", true, "Hollow Bastion 1", "any"); settings.Add("04-09-33", false, "Borough Nobodies", "HB1"); settings.Add("04-08-34", true , "Bailey Nobodies","HB1"); settings.Add("LoD1", true, "Land of Dragons 1", "any"); settings.Add("Missions", false, "Missions", "LoD1"); settings.Add("08-01-44", false, "Encampment Heartless", "Missions"); settings.Add("08-02-45", false, "Mission 1: The Surprise Attack", "Missions"); settings.Add("08-02-50", false, "Mission 2: The Ambush", "Missions"); settings.Add("08-01-46", false, "Mission 3: The Search", "Missions"); settings.Add("08-03-47", false, "Mountain Climb", "LoD1"); settings.Add("08-05-48", false, "Village Cave Heartless", "LoD1"); settings.Add("08-07-49", false, "Summit Timed Fight", "LoD1"); settings.Add("08-08-4A", false, "Imperial Square Heartless 1", "LoD1"); settings.Add("08-09-4B", true , "Shan-Yu","LoD1"); settings.Add("OC1", true, "Olympus Coliseum","any"); settings.Add("06-05-6F", false, "Hades Escape","OC1"); settings.Add("06-07-72", false, "Cerberus","OC1"); settings.Add("06-00-8C", false, "Phil's Training: Practice (Urns 1)","OC1"); settings.Add("06-00-8D", false, "Phil's Training: Maniac (Urns 2)","OC1"); settings.Add("06-11-7B", false, "Demyx's Water Clones","OC1"); settings.Add("06-08-74", false, "Pete","OC1"); settings.Add("06-12-AB", true , "The Hydra","OC1"); settings.Add("04-09-3A", false, "HB2 Borough Heartless","any"); settings.Add("04-0D-08", false, "Acquire Chicken Little (HB2)","any"); settings.Add("BC1", true, "Beast's Castle 1","any"); settings.Add("05-0B-48", false, "Thresholder","BC1"); settings.Add("05-03-45", false, "The Beast", "BC1"); settings.Add("05-05-4E", false, "Shadow Stalker","BC1"); settings.Add("05-05-4F", true , "Dark Thorn","BC1"); settings.Add("0C-00-33", false, "Minnie Escort","any"); settings.Add("TR", true, "Timeless River", "any"); settings.Add("0D-05-37", false, "Building Site Heartless","TR"); settings.Add("0D-04-36", false, "Lilliput Heartless","TR"); settings.Add("0D-06-38", false, "Scene of the Fire Heartless","TR"); settings.Add("0D-07-39", false, "Mickey's House Heartless","TR"); settings.Add("0D-02-34", false, "Boat Pete", "TR"); settings.Add("0D-03-35", true , "Timeless River Pete","TR"); settings.Add("PR1", true, "Port Royal 1", "any"); settings.Add("10-02-37", false, "Town Heartless", "PR1"); settings.Add("10-09-3B", false, "Cave Mouth Timed Fight", "PR1"); settings.Add("10-07-3A", false, "Medallion Fight", "PR1"); settings.Add("10-0A-3C", true , "Captain Barbossa","PR1"); settings.Add("AG1", true, "Agrabah 1", "any"); settings.Add("07-09-02", false, "Abu Escort", "AG1"); settings.Add("07-0D-4F", false, "Chasm of Challenges", "AG1"); settings.Add("07-0A-3A", false, "Treasure Room Heartless", "AG1"); settings.Add("07-03-3B", true , "Volcano Lord & Blizzard Lord","AG1"); settings.Add("HT1", true, "Halloween Town 1","any"); settings.Add("0E-06-35", false, "Candy Cane Lane Heartless","HT1"); settings.Add("0E-03-34", false, "Prison Keeper","HT1"); settings.Add("0E-09-37", true , "Oogie Boogie","HT1"); settings.Add("TT2", true, "Twilight Town 2", "any"); settings.Add("02-04-50", false, "Sandlot Nobodies","TT2"); settings.Add("02-02-48", false, "Acquire Limit Form","TT2"); settings.Add("SP1", true, "Space Paranoids 1","any"); settings.Add("11-02-3E", false, "Light Cycle","SP1"); settings.Add("11-03-36", false, "Dataspace Screens Minigame","SP1"); settings.Add("11-04-37", true , "Hostile Program","SP1"); settings.Add("HB3", true, "Hollow Bastion 3","any"); settings.Add("04-14-56", false, "Corridors Fight", "HB3"); settings.Add("04-12-49", false, "Restoration Site Nobodies", "HB3"); settings.Add("04-04-37", false, "Demyx","HB3"); settings.Add("04-10-41", false, "Final Fantasy Fights","HB3"); settings.Add("04-11-42", true , "1K Heartless","HB3"); settings.Add("BC2", true, "Beast's Castle 2", "any"); settings.Add("05-03-0B", false, "Rumbling Rose", "BC2"); settings.Add("05-03-14-W", false, "Leaving BC after Rumbling Rose", "BC2"); settings.Add("05-00-4B", false, "Entrance Hall Nobodies","BC2"); settings.Add("05-0F-52", true , "Xaldin","BC2"); settings.Add("PR2", true, "Port Royal 2","any"); settings.Add("10-12-55", false, "Grim Reaper I","PR2"); settings.Add("10-01-36", true , "Grim Reaper II","PR2"); settings.Add("HT2", true, "Halloween Town 2", "any"); settings.Add("0E-0A-3E", false, "Lock, Shock, & Barrel", "HT2"); settings.Add("0E-00-3C", false, "Present Collection", "HT2"); settings.Add("0E-0A-3F", false, "Gift Wrapping", "HT2"); settings.Add("0E-07-40", true , "The Experiment","HT2"); settings.Add("AG2", true, "Agrabah 2", "any"); settings.Add("07-0E-56", false, "Sandswept Ruins Heartless 1", "AG2"); settings.Add("07-0E-57", false, "Sandswept Ruins Heartless 2", "AG2"); settings.Add("07-0E-11", false, "Magic Switches", "AG2"); settings.Add("07-0E-3D", false, "Magic Carpet (Carpet autoscroller)", "AG2"); settings.Add("07-05-3E", true , "Genie Jafar","AG2"); settings.Add("LoD2", true, "Land of Dragons 2", "any"); settings.Add("08-07-4C", false, "Riku", "LoD2"); settings.Add("08-08-51", false, "Imperial Square Heartless", "LoD2"); settings.Add("08-0A-4E", false, "Antechamber Nobodies", "LoD2"); settings.Add("08-08-4F", true , "Storm Rider","LoD2"); settings.Add("TT3", true , "Twilight Town 3","any"); settings.Add("02-29-BA", false, "The Old Mansion Nobodies", "TT3"); settings.Add("02-28-A0", false, "Betwixt and Between Nobodies (without Axel)","TT3"); settings.Add("02-28-A1", true , "Betwixt and Between Nobodies","TT3"); settings.Add("TWTNW",true, "The World That Never Was", "any"); settings.Add("12-15-41", false, "Roxas","TWTNW"); settings.Add("12-0A-39", false, "Xigbar","TWTNW"); settings.Add("12-0E-3A", false, "Luxord","TWTNW"); settings.Add("12-0F-38", false, "Saix","TWTNW"); settings.Add("12-13-3B", true , "Xemnas","TWTNW"); settings.Add("KH", true, "Final Fights","any"); settings.Add("12-19-46", false, "Energy Core","KH"); settings.Add("12-18-47", false, "Armored Xemnas I","KH"); settings.Add("12-16-48", false, "Dragon Xemnas","KH"); settings.Add("12-17-49", false, "Armored Xemnas II","KH"); settings.Add("12-14-4A", true , "Final Xemnas","KH"); settings.Add("AW", false, "All Remainder Optional Worlds"); settings.Add("04-03-16-W", false, "Leave Crystal Fissure before 1,000 Heartless","AW"); settings.Add("PL", true, "Pride Lands","AW"); settings.Add("0A-02-33", false, "Hyenas I (Protect Timon/Pumbaa)","PL"); settings.Add("0A-0E-37", true , "Scar","PL"); settings.Add("0A-05-39", false, "Hyenas II","PL"); settings.Add("0A-0F-3B", true , "Groundshaker","PL"); settings.Add("SP2", true, "Space Paranoids 2","AW"); settings.Add("11-02-35", false, "Game Grid Heartless","SP2"); settings.Add("11-04-38", false, "I/O Tower: Hallway Heartless","SP2"); settings.Add("11-07-39", false, "Solar Sailer Simulation Heartless","SP2"); settings.Add("11-09-3A", false, "Sark","SP2"); settings.Add("11-09-3B", true , "MCP (with Sark)","SP2"); settings.Add("100AW", true, "100 Acre Wood","AW"); settings.Add("09-04-04", false, "A Blustery Rescue (Piglet's House)","100AW"); settings.Add("09-03-04", false, "Hunny Slider (Rabbit's House)","100AW"); settings.Add("09-05-04", false, "Balloon Bounce (Kanga's House)","100AW"); settings.Add("09-09-03", false, "The Expotition (Spooky Cave)","100AW"); settings.Add("09-01-03", true, "The Hunny Pot (Starry Hill)","100AW"); settings.Add("OC2", true , "Olympus Coliseum 2","AW"); settings.Add("06-06-7E", false, "Hades' Chamber Nobodies","OC2"); settings.Add("06-13-CA", true, "Hades","OC2"); settings.Add("ATL", true, "Atlantica","AW"); settings.Add("0B-02-3F", false, "Tutorial","ATL"); settings.Add("0B-04-40", false, "Swim This Way","ATL"); settings.Add("0B-01-33", false, "Part of Your World","ATL"); settings.Add("0B-03-35", false, "Under the Sea","ATL"); settings.Add("0B-09-41", false, "Ursula's Revenge","ATL"); settings.Add("0B-04-37", true, "A New Day is Dawning","ATL"); settings.Add("TWTNW1", true, "The World That Never Was 1","AW"); settings.Add("12-09-16-W", true, "Leaving TWTNW before Xigbar","TWTNW1"); settings.Add("CoR", false, "Cavern of Remembrance"); settings.Add("04-15-01", false, "Mineshaft Heartless 1", "CoR"); settings.Add("04-15-02", false, "Mineshaft Heartless 2", "CoR"); settings.Add("04-19-01", false, "Transport to Remembrance Nobodies 1", "CoR"); settings.Add("04-19-02", false, "Transport to Remembrance Nobodies 2", "CoR"); settings.Add("04-19-03", false, "Transport to Remembrance Nobodies 3", "CoR"); settings.Add("04-1A-01", true, "Garden of Assemblage Computer", "CoR"); settings.Add("Super", false, "Absent Silhouettes, Superbosses, and Datas"); settings.Add("Silh", false, "Absent Silhouettes", "Super"); settings.Add("04-20-73", false, "AS Vexen","Silh"); settings.Add("04-21-8E", false, "AS Lexaeus","Silh"); settings.Add("04-22-97", false, "AS Zexion","Silh"); settings.Add("04-26-91", false, "AS Marluxia","Silh"); settings.Add("04-21-8F", false, "AS Larxene","Silh"); settings.Add("Data", false, "Data Org", "Super"); settings.Add("12-13-61", true, "Data Xemnas","Data"); settings.Add("12-14-62", true, "Data Final Xemnas","Data"); settings.Add("12-0A-64", true, "Data Xigbar","Data"); settings.Add("05-0F-61", true, "Data Xaldin","Data"); settings.Add("04-20-92", true, "Data Vexen","Data"); settings.Add("04-21-93", true, "Data Lexaeus","Data"); settings.Add("04-22-98", true, "Data Zexion","Data"); settings.Add("12-0F-66", true, "Data Saix","Data"); settings.Add("02-14-D5", true, "Data Axel","Data"); settings.Add("04-04-72", true, "Data Demyx","Data"); settings.Add("12-0E-65", true, "Data Luxord","Data"); settings.Add("04-26-96", true, "Data Marluxia","Data"); settings.Add("04-21-94", true, "Data Larxene","Data"); settings.Add("12-15-63", true, "Data Roxas","Data"); settings.Add("04-01-4B", true, "Sephiroth","Super"); settings.Add("0C-07-43", true, "Lingering Will (Terra)","Super"); settings.Add("Mushroom", false, "Mushroom XIII"); settings.Add("12-03-00", true, "No. 1", "Mushroom"); settings.Add("0E-07-00", true, "No. 2", "Mushroom"); settings.Add("05-0D-00", true, "No. 3", "Mushroom"); settings.Add("08-09-00", true, "No. 4", "Mushroom"); settings.Add("07-0A-00", true, "No. 5", "Mushroom"); settings.Add("06-11-00", true, "No. 6", "Mushroom"); settings.Add("02-24-00", true, "No. 7", "Mushroom"); settings.Add("02-19-00", true, "No. 8", "Mushroom"); settings.Add("04-04-00", true, "No. 9", "Mushroom"); settings.Add("10-0D-00", true, "No. 10", "Mushroom"); settings.Add("0D-02-00", true, "No. 11", "Mushroom"); settings.Add("02-0E-00", true, "No. 12", "Mushroom"); settings.Add("04-02-03", true, "No. 13", "Mushroom"); settings.Add("GC", false, "Gold Crown (Experimental)"); settings.Add("0A-01-10-W", true, "Leaving PL2 before Groundshaker", "GC"); settings.Add("02-02-12-W", true, "Leaving TT from The Usual Spot after AS Lexaeus", "GC"); settings.Add("02-09-10-W", true, "Leaving TT from Central Station after Mushroom No. 8", "GC"); settings.Add("02-0B-10-W", true, "Leaving TT from Sunset Station after Mushroom No. 7", "GC"); settings.Add("02-12-00-W", true, "Leaving TT from The White Room after Mushroom No. 12", "GC"); settings.Add("10-10-01-W", true, "Leaving PR after AS Larxene", "GC"); settings.Add("07-0F-15-W", true, "Leaving Agrabah after AS Vexen", "GC"); settings.Add("07-0D-00-W", true, "Leaving Agrabah after Mushroom No. 5", "GC"); settings.Add("0E-05-12-W", true, "Leaving HT from Yuletide Hill after Mushroom No. 2", "GC"); settings.Add("0E-08-0C-W", true, "Leaving HT from Santa's House after Mushroom No. 2", "GC"); settings.Add("05-03-03-W", true, "Leaving BC after AS Marluxia", "GC"); settings.Add("06-0C-00-W", true, "Leaving OC after Mushroom No. 6", "GC"); settings.Add("08-0B-15-W", true, "Leaving LoD after Mushroom No. 4", "GC"); settings.Add("12-04-15-W", true, "Leaving TWTNW after Mushroom No. 1", "GC"); settings.Add("0C-05-14-W", true, "Leaving DC after Lingering Will (Terra)", "GC"); settings.Add("JJ", false, "Jiminy's Journal 100%"); settings.Add("Cups", false, "Olympus Coliseum Cups","JJ"); settings.Add("06-0D-B4", true, "Pain and Panic Cup", "Cups"); settings.Add("06-0D-B6", true, "Cerberus Cup", "Cups"); settings.Add("06-0D-B5", true, "Titan Cup", "Cups"); settings.Add("06-0D-B7", true, "Goddess of Fate Cup", "Cups"); settings.Add("06-0D-B8", true, "Hades Paradox Cup", "Cups"); } reset { if (current.titlescreen != 1)return; if(vars.startCounter==0 && current.newgame==4){ vars.startCounter = 1; } if(vars.startCounter==1){ if(current.tempMemBank == 0){ vars.startCounter = 0; } else if(current.newgame == 2){ vars.startCounter = 2; return true; } } } start { if (current.titlescreen != 1)return; if(vars.startCounter==0 && current.newgame==4)vars.startCounter = 1; if(vars.startCounter==1){ if(current.tempMemBank == 0)vars.startCounter = 0; else if(current.newgame == 2)vars.startCounter = 2; } if(vars.startCounter==2){ if(current.newgame == 4)vars.startCounter = 1; else if(current.tempMemBank == 0){ vars.startCounter = 0; return true; } } } split { if(vars.startCounter != 0 && current.titlescreen == 0)vars.startCounter = 0; string currentLocation = string.Format("{0:X2}-{1:X2}-{2:X2}", current.worldID, current.roomID, current.eventID3); string oldLocation = string.Format("{0:X2}-{1:X2}-{2:X2}", old.worldID, old.roomID, old.eventID3); //Conditional cases if Sora or specific things need to survive switch (currentLocation) { //Party Member Dying case "12-14-4A": case "12-14-69": case "10-0A-3C": if(current.storyHP == 0 || current.soraHP == 0)vars.splitTimer = 10; break; //Demyx case "04-04-37": case "04-04-72": if(current.cloneCount > 0 || current.soraHP == 0)vars.splitTimer = 10; break; //Riku? case "08-07-4C": if(current.storyHP == 228 && old.storyHP > 228)return settings[currentLocation]; break; //Top Left Gauge Runs Out case "04-08-34": case "08-01-44": case "08-01-46": case "08-02-45": case "08-02-50": case "08-03-47": case "08-09-4B": case "12-0E-3A": case "12-0E-65": if (current.soraGauge == 0 || current.soraHP == 0)vars.splitTimer = 10; break; //Top Left Gauge Fills to MAX case "0A-02-33": case "0C-02-01": case "0C-00-33": case "0D-04-36": case "0D-06-38": case "0D-05-37": case "0D-07-39": case "11-07-39": if (current.soraGauge == 17096 || current.soraHP == 0)vars.splitTimer = 20; break; //Boat Fight case "10-07-3A": if ((current.medalTimer!=old.medalTimer && current.medalTimer == 0) || current.soraHP == 0)vars.splitTimer = 20; break; //Marluxia case "04-26-91": case "04-26-96": if (current.marluxiaHitCount == 0 || current.soraHP == 0)vars.splitTimer = 10; break; //World Double Split Prevention case "04-03-01": //FF Fights Cutscene case "05-03-0B": //Rumbling Rose Cutscene case "12-07-00": //TWTNW Elevator case "0A-09-0B": //PL2 Simba Cutscene case "04-21-7B": //Lexaus Defeated Cutscene case "04-20-79": //Vexen Defeated Cutscene case "04-21-9A": //Larxene Defeated Cutscene case "04-26-7F": //Marluxia Defeated Cutscene case "0C-07-45": //Lingering Will Defeated Cutscene vars.WorldSplitTrigger = 1; break; case "12-0A-01": //Before Xigbar, and not leaving case "04-02-01": //Cutscene before 1K Heartless vars.WorldSplitTrigger = 0; break; default: if(current.soraHP == 0)vars.splitTimer = 10; break; } if(vars.splitTimer > 0){ if (current.fightend != true)--vars.splitTimer; //print(vars.splitTimer.ToString()); return; } // Write all and any split logic under here. // The splitTimer if statement above will stop it from double splitting. if(current.fightend == true){ //print("Fight ended! Loc: "+currentLocation); vars.splitTimer = 10; return settings[currentLocation]; } else if (currentLocation!=oldLocation){ //print("C:"+currentLocation+" O:"+oldLocation); switch(oldLocation) { case "02-02-48": case "02-08-6C": case "02-1B-04": case "02-1C-04": case "04-0D-08": case "06-05-6F": case "08-03-47": case "09-01-03": case "09-03-04": case "09-04-04": case "09-05-04": case "09-09-03": case "12-19-46": case "0B-02-3F": case "0B-04-40": case "0B-01-33": case "0B-03-35": case "0B-09-41": case "0B-04-37": case "0B-04-67": case "06-0D-B4": case "06-0D-B6": case "06-0D-B5": case "06-0D-B7": case "06-0D-B8": return settings[oldLocation]; break; case "02-0E-05": vars.splitTimer = 100; break; case "05-03-14": case "12-09-16": case "0A-01-10": case "02-02-12": case "02-09-10": case "02-0B-10": case "02-12-00": case "10-10-01": case "07-0F-15": case "07-0D-00": case "0E-05-12": case "0E-08-0C": case "05-03-03": case "06-0C-00": case "08-0B-15": case "12-04-15": case "0C-05-14": case "04-03-16": if (current.worldID == 0x0F && vars.WorldSplitTrigger == 1){ vars.WorldSplitTrigger = 0; return settings[oldLocation+"-W"]; } break; default: if (current.wolrdID == 0x0F && vars.WorldSplitTrigger == 1) vars.WorldSplitTrigger = 0; break; } } // Mushroom 13 Logic if (current.Mush1 != old.Mush1 && current.Mush1 >= 0x45) { vars.WorldSplitTrigger = 1; return settings[currentLocation]; } if (current.Mush2 != old.Mush2 && current.Mush2 >= 0x50) { vars.WorldSplitTrigger = 1; return settings[currentLocation]; } if (current.Mush3 != old.Mush3 && current.Mush3 >= 0x1C2) return settings[currentLocation]; if (current.Mush4 != old.Mush4 && current.Mush4 >= 0x55) { vars.WorldSplitTrigger = 1; return settings[currentLocation]; } if (current.Mush5 != old.Mush5 && current.Mush5 <= 0x258) { vars.WorldSplitTrigger = 1; return settings[currentLocation]; } if (current.Mush6 != old.Mush6 && current.Mush6 <= 0xA8C) { vars.WorldSplitTrigger = 1; return settings[currentLocation]; } if (current.Mush7 != old.Mush7 && current.Mush7 <= 0x258) { vars.WorldSplitTrigger = 1; return settings[currentLocation]; } if (current.Mush8 != old.Mush8 && current.Mush8 >= 0x55) { vars.WorldSplitTrigger = 1; return settings[currentLocation]; } if (current.Mush9 != old.Mush9 && current.Mush9 >= 0x4B) return settings[currentLocation]; if (current.Mush10 != old.Mush10 && current.Mush10 <= 0xCE4) return settings[currentLocation]; if (current.Mush11 != old.Mush11 && current.Mush11 <= 0x474) return settings[currentLocation]; if (current.Mush12 != old.Mush12 && current.Mush12 >= 0x28) { vars.WorldSplitTrigger = 1; return settings[currentLocation]; } if (old.GreatMawRoomFlag == 03 && current.GreatMawRoomFlag == 00) return settings[currentLocation]; } exit { vars.booting = true; timer.IsGameTimePaused = true; } update { if(vars.booting && current.titlescreen == 1)vars.booting = false; } isLoading { return current.load || current.saveload || current.black==128; }