state("ffxvi") { uint load : "ffxvi.exe", 0x2745300, 0x88, 0xD60, 0x78, 0x130; uint start : "ffxvi.exe", 0x1816600, 0x640; byte victoryTextDisplayed : "ffxvi.exe", 0x2743AF8, 0x120, 0x10, 0x48, 0x38, 0xCC; string40 victoryText1 : "ffxvi.exe", 0x2743AF8, 0x120, 0x10, 0x48, 0x38, 0xD8; string40 victoryText2 : "ffxvi.exe", 0x2743AF8, 0x120, 0x10, 0x48, 0x38, 0xD8, 0x0; } state("ffxvi_demo") { uint load : "ffxvi_demo.exe", 0x26DF560, 0x88, 0xD60, 0x78, 0x130; uint start : "ffxvi_demo.exe", 0x179D8C0, 0x640; byte victoryTextDisplayed : "ffxvi_demo.exe", 0x26DDD70, 0x120, 0x10, 0x48, 0x38, 0xCC; string40 victoryText1 : "ffxvi_demo.exe", 0x26DDD70, 0x120, 0x10, 0x48, 0x38, 0xD8; string40 victoryText2 : "ffxvi_demo.exe", 0x26DDD70, 0x120, 0x10, 0x48, 0x38, 0xD8, 0x0; } startup { settings.Add("PrologueDemoSplits", true, "Prologue/Demo Splits"); settings.CurrentDefaultParent = "PrologueDemoSplits"; settings.Add("SplitGigas", true, "Gigas"); settings.Add("SplitMorbol", true, "Morbol"); settings.Add("SplitKnightOfTheBlindingDawn", true, "Knight of the Blinding Dawn"); settings.Add("SplitEikonOfFire", true, "Eikon of Fire"); settings.CurrentDefaultParent = null; settings.Add("Act1Splits", true, "Act 1 Splits"); settings.CurrentDefaultParent = "Act1Splits"; settings.Add("SplitShiva", true, "Shiva"); settings.Add("SplitTiamat", true, "Tiamat"); settings.Add("SplitFafnir", true, "Fafnir"); settings.Add("SplitMidnightRaven", true, "Midnight Raven"); settings.Add("SplitChirada", true, "Chirada"); settings.Add("SplitSuparnaChirada", true, "Suparna & Chirada"); settings.Add("SplitBenedikta", true, "Benedikta Harman"); settings.Add("SplitGaruda", true, "Garuda I & II (Both Clive & Ifrit Fights)"); settings.Add("SplitKnightOfTheDyingSun", true, "Knight of the Dying Sun"); settings.Add("SplitIronGiant", true, "Iron Giant"); settings.Add("SplitInfernalEikon", true, "Infernal Eikon"); settings.Add("SplitImperialCannonier", true, "Imperial Cannonier"); settings.Add("SplitAkashicDragon", true, "Akashic Dragon"); settings.Add("SplitTyphon", true, "Typhon"); settings.CurrentDefaultParent = null; settings.Add("Act2Splits", true, "Act 2 Splits"); settings.CurrentDefaultParent = "Act2Splits"; settings.Add("SplitRepublicanWarPanther", true, "Republican War Panther"); settings.Add("SplitAkashicMorbol", true, "Akashic Morbol"); settings.Add("SplitFlameLizard", true, "Flame Lizard"); settings.Add("SplitLiquidFlame", true, "Liquid Flame"); settings.Add("SplitCoeurl", true, "Coeurl"); settings.Add("SplitHugoKupka", true, "Hugo Kupka"); settings.Add("SplitTheUndertaker", true, "The Undertaker"); settings.Add("SplitTitan", true, "Titan"); settings.Add("SplitWhiteDragon", true, "White Dragon"); settings.Add("SplitNecrophobe", true, "Necrophobe"); settings.Add("SplitBahamut", true, "Bahamut I & II (Both Ifrit & Ifrit Risen Fights)"); settings.CurrentDefaultParent = null; settings.Add("Act3Splits", true, "Act 3 Splits"); settings.CurrentDefaultParent = "Act3Splits"; settings.Add("SplitSleipnir", true, "Sleipnir Harbard"); settings.Add("SplitEnterprise", true, "Enterprise Escape"); settings.Add("SplitBarnabas", true, "Barnabas Tharmr"); settings.Add("SplitAurumGiant", true, "Aurum Giant"); settings.Add("SplitOdin", true, "Odin"); settings.Add("SplitBehemoth", true, "Behemoth"); settings.Add("SplitUltima", true, "Ultima"); settings.Add("SplitUltimaPrime", true, "Ultima Prime"); settings.Add("SplitUltimalius", true, "Ultimalius"); settings.CurrentDefaultParent = null; settings.Add("EchoesSplits", false, "Echoes of the Fallen Splits"); settings.CurrentDefaultParent = "EchoesSplits"; settings.Add("SplitSigma", true, "Sigma"); settings.Add("SplitAngraMainyu", true, "Angra Mainyu"); settings.Add("SplitOmega", true, "Omega"); settings.CurrentDefaultParent = null; settings.Add("RisingTideSplits", false, "The Rising Tide Splits"); settings.CurrentDefaultParent = "RisingTideSplits"; settings.Add("SplitPerykos", true, "Perykos"); settings.Add("SplitHreidmar", true, "Hreidmar"); settings.Add("SplitTimekeeper", true, "Timekeeper"); settings.Add("SplitLeviathan", true, "Leviathan"); settings.CurrentDefaultParent = null; settings.Add("KairosGateSplits", false, "Kairos Gate Splits"); settings.CurrentDefaultParent = "KairosGateSplits"; settings.Add("SplitFirstCircle", true, "The First Circle"); settings.Add("SplitSecondCircle", true, "The Second Circle"); settings.Add("SplitThirdCircle", true, "The Third Circle"); settings.Add("SplitFourthCircle", true, "The Fourth Circle"); settings.Add("SplitFifthCircle", true, "The Fifth Circle"); settings.Add("SplitSixthCircle", true, "The Sixth Circle"); settings.Add("SplitSeventhCircle", true, "The Seventh Circle"); settings.Add("SplitEighthCircle", true, "The Eighth Circle"); settings.Add("SplitNinthCircle", true, "The Ninth Circle"); settings.Add("SplitTenthCircle", true, "The Tenth Circle"); settings.Add("SplitEleventhCircle", true, "The Eleventh Circle"); settings.Add("SplitTwelfthCircle", true, "The Twelfth Circle"); settings.Add("SplitThirteenthCircle", true, "The Thirteenth Circle"); settings.Add("SplitFourteenthCircle", true, "The Fourteenth Circle"); settings.Add("SplitFifteenthCircle", true, "The Fifteenth Circle"); settings.Add("SplitSixteenthCircle", true, "The Sixteenth Circle"); settings.Add("SplitSeventeenthCircle", true, "The Seventeenth Circle"); settings.Add("SplitEighteenthCircle", true, "The Eighteenth Circle"); settings.Add("SplitNineteenthCircle", true, "The Nineteenth Circle"); settings.Add("SplitTwentiethCircle", true, "The Twentieth Circle"); settings.CurrentDefaultParent = null; settings.Add("MiscSplits", false, "Miscellaneous Splits"); settings.CurrentDefaultParent = "MiscSplits"; settings.Add("SplitSubquests", false, "Subquests & Sidequests"); settings.Add("SplitMinorEncounters", false, "Minor Encounters (All 'Enemies Slain' result screens)"); settings.CurrentDefaultParent = null; } init { timer.IsGameTimePaused = false; } exit { timer.IsGameTimePaused = true; } isLoading { return current.load == 1; } split { bool textVisible = current.victoryTextDisplayed == 1 && old.victoryTextDisplayed == 0; if (!textVisible) return false; if (settings["PrologueDemoSplits"]) { // Stillwind if (settings["SplitGigas"] && current.victoryText1 == "Gigas Slain") { return true; } if (settings["SplitMorbol"] && current.victoryText1 == "Morbol Slain") { return true; } // Phoenix Gate if (settings["SplitKnightOfTheBlindingDawn"] && current.victoryText2 == "Knight of the Blinding Dawn Slain") { return true; } if (settings["SplitEikonOfFire"] && current.victoryText2 == "Eikon of Fire Vanquished") { return true; } } if (settings["Act1Splits"]) { // The Nysa Defile if (settings["SplitShiva"] && current.victoryText1 == "Shiva Defeated") { return true; } if (settings["SplitTiamat"] && current.victoryText1 == "Tiamat Bested") { return true; } // The Greatwood if (settings["SplitFafnir"] && current.victoryText2 == "Fafnir of the North Slain") { return true; } if (settings["SplitMidnightRaven"] && current.victoryText2 == "Midnight Raven Slain") { return true; } // Orabelle Downs if (settings["SplitChirada"] && current.victoryText1 == "Chirada Slain") { return true; } // Caer Norvent if (settings["SplitSuparnaChirada"] && current.victoryText2 == "Suparna & Chirada Slain") { return true; } if (settings["SplitBenedikta"] && current.victoryText2 == "Benedikta Defeated") { return true; } // The Eye of the Tempest if (settings["SplitGaruda"] && current.victoryText1 == "Garuda Slain") { return true; } // The Kingsfall if (settings["SplitKnightOfTheDyingSun"] && current.victoryText2 == "Knight of the Dying Sun Slain") { return true; } // Phoenix Gate Ruins if (settings["SplitIronGiant"] && current.victoryText2 == "Iron Giant Dismantled") { return true; } if (settings["SplitInfernalEikon"] && current.victoryText2 == "Shadow Vanquished") { return true; } // Drake's Head if (settings["SplitImperialCannonier"] && current.victoryText2 == "Imperial Cannonier Slain") { return true; } if (settings["SplitAkashicDragon"] && current.victoryText2 == "Akashic Dragon Slain") { return true; } if (settings["SplitTyphon"] && current.victoryText2 == "Typhon Vanquished") { return true; } } if (settings["Act2Splits"]) { // Kostnice if (settings["SplitRepublicanWarPanther"] && current.victoryText2 == "Republican War Panther Slain") { return true; } // Drake's Breath if (settings["SplitAkashicMorbol"] && current.victoryText2 == "Akashic Morbol Slain") { return true; } if (settings["SplitFlameLizard"] && current.victoryText2 == "Flame Lizard Slain") { return true; } if (settings["SplitLiquidFlame"] && current.victoryText2 == "Liquid Flame Extinguished") { return true; } // Rosalith if (settings["SplitCoeurl"] && current.victoryText1 == "Coeurl Slain") { return true; } if (settings["SplitHugoKupka"] && current.victoryText2 == "Hugo Kupka Defeated") { return true; } // Drake's Fang if (settings["SplitTheUndertaker"] && current.victoryText2 == "The Undertaker Vanquished") { return true; } if (settings["SplitTitan"] && current.victoryText1 == "Titan Slain") { return true; } // The Crystalline Dominion if (settings["SplitWhiteDragon"] && current.victoryText2 == "White Dragon Slain") { return true; } if (settings["SplitNecrophobe"] && current.victoryText2 == "Necrophobe Vanquished") { return true; } if (settings["SplitBahamut"] && current.victoryText2 == "Bahamut Defeated") { return true; } } if (settings["Act3Splits"]) { // The Free Cities of Kanver if (settings["SplitSleipnir"] && current.victoryText1 == "Sleipnir Slain") { return true; } // The Ironworks if (settings["SplitEnterprise"] && current.victoryText2 == "Enterprise Escaped") { return true; } // The Naldia Narrow if (settings["SplitBarnabas"] && current.victoryText1 == "Clive Bested") { return true; } // Reverie if (settings["SplitAurumGiant"] && current.victoryText2 == "Aurum Giant Dismantled") { return true; } if (settings["SplitOdin"] && current.victoryText1 == "Barnabas Slain") { return true; } // Drake's Spine if (settings["SplitBehemoth"] && current.victoryText1 == "Behemoth Slain") { return true; } if (settings["SplitUltima"] && current.victoryText2 == "Ultima Vanquished") { return true; } // Origin if (settings["SplitUltimaPrime"] && current.victoryText2 == "Ultima Prime Thwarted") { return true; } if (settings["SplitUltimalius"] && current.victoryText2 == "Ultimalius Slain") { return true; } } if (settings["EchoesSplits"]) { // The Sagespire if (settings["SplitSigma"] && current.victoryText1 == "Sigma Defeated") { return true; } if (settings["SplitAngraMainyu"] && current.victoryText2 == "Angra Mainyu Slain") { return true; } if (settings["SplitOmega"] && current.victoryText1 == "Omega Defeated") { return true; } } if (settings["RisingTideSplits"]) { // The Surge if (settings["SplitPerykos"] && current.victoryText1 == "Perykos Slain") { return true; } // The Aire of Hours if (settings["SplitHreidmar"] && current.victoryText1 == "Hreidmar Slain") { return true; } if (settings["SplitTimekeeper"] && current.victoryText2 == "Timekeeper Slain") { return true; } // The Surge if (settings["SplitLeviathan"] && current.victoryText1 == "Leviathan Tamed") { return true; } } // Kairos Gate if (settings["KairosGateSplits"]) { if (settings["SplitFirstCircle"] && current.victoryText2 == "The First Circle Cleared") { return true; } if (settings["SplitSecondCircle"] && current.victoryText2 == "The Second Circle Cleared") { return true; } if (settings["SplitThirdCircle"] && current.victoryText2 == "The Third Circle Cleared") { return true; } if (settings["SplitFourthCircle"] && current.victoryText2 == "The Fourth Circle Cleared") { return true; } if (settings["SplitFifthCircle"] && current.victoryText2 == "Infernal Ifrit Slain") { return true; } if (settings["SplitSixthCircle"] && current.victoryText2 == "The Sixth Circle Cleared") { return true; } if (settings["SplitSeventhCircle"] && current.victoryText2 == "The Seventh Circle Cleared") { return true; } if (settings["SplitEighthCircle"] && current.victoryText2 == "The Eighth Circle Cleared") { return true; } if (settings["SplitNinthCircle"] && current.victoryText2 == "The Ninth Circle Cleared") { return true; } if (settings["SplitTenthCircle"] && current.victoryText2 == "The Warden of Wind Slain") { return true; } if (settings["SplitEleventhCircle"] && current.victoryText2 == "The Eleventh Circle Cleared") { return true; } if (settings["SplitTwelfthCircle"] && current.victoryText2 == "The Twelfth Circle Cleared") { return true; } if (settings["SplitThirteenthCircle"] && current.victoryText2 == "The Thirteenth Circle Cleared") { return true; } if (settings["SplitFourteenthCircle"] && current.victoryText2 == "The Fourteenth Circle Cleared") { return true; } if (settings["SplitFifteenthCircle"] && current.victoryText2 == "The Warden of Stone Slain") { return true; } if (settings["SplitSixteenthCircle"] && current.victoryText2 == "The Sixteenth Circle Cleared") { return true; } if (settings["SplitSeventeenthCircle"] && current.victoryText2 == "The Seventeenth Circle Cleared") { return true; } if (settings["SplitEighteenthCircle"] && current.victoryText2 == "The Eighteenth Circle Cleared") { return true; } if (settings["SplitNineteenthCircle"] && current.victoryText2 == "The Nineteenth Circle Cleared") { return true; } if (settings["SplitTwentiethCircle"] && current.victoryText2 == "The Warden of Darkness Slain") { return true; } } // Miscellaneous Splits if (settings["MiscSplits"]) { if (settings["SplitSubquests"] && current.victoryText1 == "Quest Complete") { return true; } if (settings["SplitMinorEncounters"] && current.victoryText1 == "Enemy Slain") { return true; } if (settings["SplitMinorEncounters"] && current.victoryText1 == "Enemies Slain") { return true; } if (settings["SplitMinorEncounters"] && current.victoryText1 == "Enemy Bested") { return true; } if (settings["SplitMinorEncounters"] && current.victoryText1 == "Enemies Bested") { return true; } if (settings["SplitMinorEncounters"] && current.victoryText1 == "Soldiers Bested") { return true; } } } start { // Autostart relevant to NG and NG+ categories only. return current.start == 0 && old.start == 1; }