HenryEx icon

Rune Factory 4 SysSave Binary Template

HenryEx | PRO | 09/22/20 10:24:38 PM UTC (Edited) | 0 ⭐ | 867 👁️ | Never ⏰ | []
text |

24.65 KB

|

None

|

0 👍

/

0 👎

//--------------------------------------
//--- 010 Editor v8.0 Binary Template
//
// File: rf4s.sav / rf4_sys.sav
// Author: HenryEx
// Revision: 2020-09-22
// Purpose: Display and edit the save selection / 
//          system settings file in Rune Factory 4
//--------------------------------------
 //-----------------------------------
// Define enums
 typedef enum <ubyte> {
   EASY,
   NORMAL = 64,
   HARD = 128
} DIFF;
 // this is a simple bitflag, but classed as 4byte for padding shenanigans
typedef enum <ulong> {
   Male,
   Female
} GENDER;
 // ItemID, 2 bytes but defined as 4 for bitfield shenanigans
typedef enum <ulong> {
   Cabbage = 1,
   KingCabbage,
   PinkTurnip,
   ColossalPink,
   PinkMelon,
   ConquerorMelon,
   Onion,
   UltraOnion,
   Pumpkin,
   DoomPumpkin,
   Cucumber,
   KaiserCucumber,
   Corn,
   GigantCorn,
   Tomato,
   TitanTomato,
   Eggplant,
   EmperorEggplant,
   Yam,
   LordlyYam,
   Potato,
   PrincelyPotato,
   Carrot,
   RoyalCarrot,
   GreenPepper,
   GreenPepperRex,
   Spinach,
   SovereignSpinach,
   Turnip,
   TyrantTurnip,
   Radish,
   NobleRadish,
   Leek,
   LegendaryLeek,
   BokChoy,
   BossBokChoy,
   HotHotFruit,
   GiantHotHotFruit,
   BambooSprout,
   GoldenCabbage,
   GoldenKingCabbage,
   GoldenPumpkin,
   GldnDoomPumpkin,
   GoldenPotato,
   GoldPrincePotato,
   GoldenTurnip,
   GoldenTyrantTurnip,
   MushroomA,
   MushroomB,
   MushroomC,
   MushroomD,
   MushroomE,
   Mushroom,
   MonarchMushroom,
   Strawberry,
   SultanStrawberry,
   Pineapple,
   KingPineapple,
   Grapes,
   Apple,
   Orange,
   MealyApple,
   Toyherb,
   UltraToyherb,
   MoondropFlower,
   UltraMoondropFlower,
   PinkCat,
   KingPinkCat,
   CharmBlue,
   GreatCharmBlue,
   MedicinalHerb,
   AntidoteGrass,
   BlackGrass,
   OrangeGrass,
   RedGrass,
   YellowGrass,
   BlueGrass,
   GreenGrass,
   PurpleGrass,
   IndigoGrass,
   WhiteGrass,
   Weeds,
   WitheredGrass,
   CherryGrass,
   KingCherryGrass,
   LampGrass,
   KaiserLampGrass,
   BlueCrystal,
   BigBlueCrystal,
   EmeryFlower,
   GreatEmeryFlower,
   Ironleaf,
   SuperIronleaf,
   FourLeafClover,
   Great4LeafClover,
   Fireflower,
   BigFireflower,
   GreenCrystal,
   BigGreenCrystal,
   NoelGrass,
   LargeNoelGrass,
   AutumnGrass,
   BigAutumnGrass,
   PomPomGrass,
   KingPomPomGrass,
   RedCrystal,
   BigRedCrystal,
   WhiteCrystal,
   BigWhiteCrystal,
   AyngondaiaLawn,
   TheProtein,
   Intelligencer,
   VitalGummi,
   HeartDrink,
   AntidotePotion,
   ParaGone,
   Roundoff,
   ColdMedicine,
   Formuade,
   LovePotion,
   Invinciroid,
   Leveliser,
   HeavySpice,
   SweetPowder,
   SourDrop,
   MixedHerbs,
   RecoveryPotion,
   HealingPotion,
   MysteryPotion,
   MagicalPotion,
   ObjectX,
   FailedDish,
   DisastrousDish,
   TroutSashimi,
   CharSashimi,
   RainbowSashimi,
   SalmonSashimi,
   CherrySashimi,
   TaimenSashimi,
   SnapperSashimi,
   GlitterSashimi,
   LoverSashimi,
   GirellaSashimi,
   SkipjackSashimi,
   YellowtailSashimi,
   TunaSashimi,
   SardineSashimi,
   NeedlefishSashimi,
   PikeSashimi,
   FlounderSashimi,
   TurbotSashimi,
   FallSashimi,
   SquidSashimi,
   SunsquidSashimi,
   LampSquidSashimi,
   BlowfishSashimi,
   LobsterSashimi,
   ShrimpSashimi,
   FriedVeggies,
   FriedRice,
   CabbageCakes,
   FrenchFries,
   Croquettes,
   Popcorn,
   CornCereal,
   MisoEggplant,
   FriedEggs,
   Omelet,
   OmeletRice,
   BakedApple,
   CurryBread,
   FrenchToast,
   Donut,
   FriedUdon,
   Tempura,
   Pancakes,
   Gyoza,
   Risotto,
   DryCurry,
   SaltedMasuTrout,
   SaltedChar,
   SaltedRTrout,
   SaltedCSalmon,
   SaltedChub,
   SaltedSalmon,
   SaltedTaimen,
   GrilledCCarp,
   GrilledGibelio,
   GrilledSnapper,
   GrilledGirella,
   GrilledGSnapper,
   GrilledLSnapper,
   GrilledSkipjack,
   GrilledMackerel,
   GrilledYellowtail,
   SaltedPondSmelt,
   TunaTeriyaki,
   DriedSardines,
   GrilledNeedlefish,
   SaltedPike,
   GrilledFlounder,
   GrilledTurbot,
   GrilledFFlounder,
   GrilledSquid,
   GrilledSunsquid,
   GrilledLampSquid,
   GrilledBlowfish,
   GrilledLobster,
   GrilledShrimp,
   GrilledSFlounder,
   HotMilk,
   HotChocolate,
   GrapeLiqueur,
   BoiledPumpkin,
   BoiledSpinach,
   BoiledEgg,
   GlazedYam,
   BoiledGyoza,
   StrawberryJam,
   AppleJam,
   GrapeJam,
   Marmalade,
   CheeseFondue,
   Udon,
   CurryUdon,
   TempuraUdon,
   RicePorridge,
   MilkPorridge,
   TempuraBowl,
   EggBowl,
   Stew,
   CurryRice,
   UltimateCurry,
   RoyalCurry,
   RelaxTea,
   GrilledMiso,
   UnionStew,
   RockfishStew,
   CornontheCob,
   BakedOnigiri,
   SweetPotato,
   Toast,
   JamRoll,
   ButterRoll,
   Pizza,
   SeafoodPizza,
   Doria,
   SeafoodDoria,
   Gratin,
   SeafoodGratin,
   YamoftheAges,
   Cookie,
   ChocoCookie,
   Cake,
   ChocolateCake,
   Cheesecake,
   ApplePie,
   PineappleJuice,
   TomatoJuice,
   GrapeJuice,
   OrangeJuice,
   AppleJuice,
   StrawberryMilk,
   FruitJuice,
   FruitSmoothie,
   VegetableJuice,
   VeggieSmoothie,
   MixedJuice,
   MixedSmoothie,
   Ketchup,
   Butter,
   GoldJuice,
   PreludetoLove,
   HotJuice,
   SteamedBread,
   CheeseBread,
   MeatDumpling,
   ChineseManju,
   CurryManju,
   SteamedGyoza,
   PoundCake,
   ChocolateSponge,
   Flan,
   PumpkinFlan,
   Dumplings,
   Salad,
   Sandwich,
   FruitSandwich,
   PickledTurnip,
   Pickles,
   BambooRice,
   RaisinBread,
   IceCream,
   RelaxTeaLeaves,
   Onigiri,
   Bread,
   SalmonOnigiri,
   PickleMix,
   TurnipHeaven,
   Rice,
   Chocolate,
   Wine,
   ElliLeaves,
   Milk_S,
   Milk_M,
   Milk_L,
   Egg_S,
   Egg_M,
   Egg_L,
   Mayonnaise,
   Cheese,
   Yogurt,
   Honey,
   Flour,
   Oil,
   CurryPowder,
   RiceFlour,
   MedicineBread,
   MedicineBreadPlus,
   CookingBread,
   CookingBreadPlus,
   WeaponBread,
   WeaponBreadPlus,
   AccessoryBread,
   AccessoryBreadPlus,
   FarmingBread,
   FarmingBreadPlus,
   Broadsword,
   SteelSword,
   WindSword,
   AquaSword,
   Defender,
   AerialBlade,
   BurningSword,
   Sakura,
   LuckBlade,
   PlatinumSword,
   Raventine,
   Icifier,
   SoulEater,
   SmashBlade,
   DragonSlayer,
   Sunspot,
   StarSaber,
   GaiaSword,
   Grantale,
   ChaosBlade,
   RuneBlade,
   SteelSwordPlus,
   PlatinumSwordPlus,
   Cutlass,
   BackScratcher,
   Durendal,
   Gladius,
   GorgeousSword,
   Spoon,
   RuneLegend,
   Snakesword,
   Veggieblade,
   Invisiblade,
   PlantSword,
   Claymore,
   Zweihaender,
   FlameSaber,
   CycloneBlade,
   DancingDicer,
   GreatSword,
   HeavenAsunder,
   GrandSmasher,
   BlueEyedBlade,
   PoisonBlade,
   SteelSlicer,
   Flamberge,
   ShineBlade,
   EarthShade,
   BioSmasher,
   Punisher,
   SeaCutter,
   Volcanon,
   SnowCrown,
   MoonShadow,
   ForceElement,
   ZweihaenderPlus,
   FlambergePlus,
   Katzbalger,
   BigKnife,
   Katana,
   Balmung,
   Psycho,
   Dekash,
   Braveheart,
   Belzebuth,
   Daicone,
   Caliburn,
   Orochi,
   Spear,
   Lance,
   NeedleSpear,
   Halberd,
   WaterSpear,
   BloodLance,
   WoodStaff,
   PoisonSpear,
   Corsesca,
   SilentGrave,
   FlareLance,
   HeavyLance,
   Iceberg,
   Metus,
   MonkStaff,
   Overbreak,
   Brionac,
   FeatherLance,
   Belvarose,
   Bjor,
   Gungnir,
   LancePlus,
   CorsescaPlus,
   Trident,
   Pitchfork,
   DragonsFang,
   GaeBolg,
   MagicalLance,
   SafetyLance,
   Legion,
   PoisonQueen,
   PineClub,
   Fivestaff,
   BattleHammer,
   WarHammer,
   GreatHammer,
   Schnabel,
   GigantHammer,
   Mjolnir,
   SpikedHammer,
   FlameHammer,
   IceHammer,
   SkyHammer,
   GravitonHammer,
   BoneHammer,
   CrystalHammer,
   WarHammerPlus,
   GigantHammerPlus,
   Hammer,
   ToyHammer,
   FatalCrush,
   StrongStone,
   Kongo,
   Bat,
   IronBat,
   SplashStar,
   BattleAxe,
   PoleAxe,
   Alldale,
   GreatAxe,
   DemonAxe,
   CrescentAxe,
   Executioner,
   HeatAxe,
   FrostAxe,
   Tomahawk,
   RockAxe,
   DoubleEdge,
   SaintAxe,
   PoleAxePlus,
   CrescentAxePlus,
   Axe,
   Lollipop,
   BattleScythe,
   BasiliskFang,
   DevilFinger,
   Rod,
   Staff,
   SilverStaff,
   FlareStaff,
   IceStaff,
   LightningWand,
   EarthStaff,
   WizardsStaff,
   MagesStaff,
   RuneStaff,
   MagesStaffPlus,
   MagicBroom,
   Basket,
   MagicShot,
   HellBranch,
   CrimsonStaff,
   BubbleStaff,
   GaiaRod,
   ShootingStarStaff,
   CycloneRod,
   StormWand,
   RubyRod,
   EmeraldRod,
   SapphireRod,
   AmethystRod,
   AquamarineRod,
   DiamondRod,
   FriendlyRod,
   LoveLoveRod,
   SorcerersWand,
   HellCurse,
   Algernon,
   GoldenTurnipStaff,
   SweetPotatoStaff,
   ElvishHarp,
   Syringe,
   ShortDagger,
   SteelEdge,
   WindEdge,
   FrostEdge,
   SteelKatana,
   SonicDagger,
   Salamander,
   TwinBlade,
   Rampage,
   PlatinumEdge,
   Efreet,
   DeepBlizzard,
   DarkInvitation,
   ForceDivide,
   DragoonClaw,
   HeartFire,
   DesertWind,
   BrokenWall,
   OrcusSword,
   ChaosEdge,
   RuneEdge,
   IronEdge,
   EmeraldEdge,
   ThiefKnife,
   DoubleScratch,
   PriestSaber,
   EarnestEdge,
   GorgeousLx,
   Acutorimass,
   TwinLeeks,
   TwinJustice,
   LeatherGloves,
   BrassKnuckles,
   Kote,
   BearClaws,
   FistsofFire,
   FistsofWater,
   FistsofWind,
   FistsoftheEarth,
   FistsofLight,
   FistsofDark,
   Gloves_A,
   CatPunch,
   DragonClaws,
   AnimalPuppets,
   IronleafFists,
   GolemPunch,
   HandofGod,
   Caestus,
   BazalKatar,
   Fenrir,
   CheapHoe,
   SturdyHoe,
   SeasonedHoe,
   ShinyHoe,
   BlessedHoe,
   CheapWaterpot,
   TinWaterpot,
   LionWaterpot,
   RainbowWaterpot,
   JoyWaterpot,
   CheapSickle,
   IronSickle,
   QualitySickle,
   SuperSickle,
   LegendarySickle,
   CheapHammer,
   IronHammer,
   SilverHammer,
   GoldenHammer,
   PlatinumHammer,
   CheapAxe,
   ChoppingAxe,
   LumberAxe,
   MountainAxe,
   MiracleAxe,
   CheapPole,
   BeginnersPole,
   SkilledPole,
   FamousPole,
   SacredPole,
   SmallShield,
   IronShield,
   RoundShield,
   PlatinumShield,
   HeavyShield,
   KnightShield,
   RuneShield,
   MagicShield,
   PrismShield,
   ElementShield,
   ChaosShield,
   TurtleShield,
   BoneShield,
   KiteShield,
   MagicalShield,
   MonkeyPlush,
   Umbrella,
   MagicPlantShield,
   AquamarineRing,
   AmethystRing,
   EmeraldRing,
   SapphireRing,
   DiamondRing,
   RubyRing,
   HappyRing,
   CursedRing,
   FireRing,
   WindRing,
   WaterRing,
   EarthRing,
   SilverRing,
   GoldRing,
   PlatinumRing,
   CriticalRing,
   SilentRing,
   ParalysisRing,
   PoisonRing,
   MagicRing,
   CheapBracelet,
   BronzeBracelet,
   SilverBracelet,
   GoldBracelet,
   PlatinumBracelet,
   AquamarineBrooch,
   AmethystBrooch,
   EmeraldBrooch,
   SapphireBrooch,
   DiamondBrooch,
   RubyBrooch,
   SilverPendant,
   HeartPendant,
   StarPendant,
   SunPendant,
   FieldPendant,
   DewPendant,
   EarthPendant,
   HolyAmulet,
   Charm,
   LeatherBelt,
   LuckyStrike,
   Talisman,
   ChampBelt,
   Gloves_B,
   WorkGloves,
   Badge,
   PowerGloves,
   MagicCharm,
   ShieldRing,
   Rosary,
   CourageBadge,
   HerosProof,
   ProofofWisdom,
   HandKnitScarf,
   FluffyScarf,
   ArtofAttack,
   ArtofDefense,
   ArtofMagic,
   Earrings,
   WitchEarrings,
   MagicEarrings,
   VentisCharmA,
   VentisCharmB,
   AnettesNecklace,
   ThrowingRing,
   StayUpRing,
   StrangePendant,
   DolphinBrooch,
   EngagementRing,
   SilverHairpin,
   GoldHairpin,
   FancyHat,
   Headband,
   FeatheredHat,
   BrandGlasses,
   Spectacles,
   IntelligentGlasses,
   StrawHat,
   FireproofHood,
   CuteKnitting,
   BlackRibbon,
   OrangeRibbon,
   RedRibbon,
   YellowRibbon,
   BlueRibbon,
   GreenRibbon,
   PurpleRibbon,
   IndigoRibbon,
   WhiteRibbon,
   TurnipHeadgear,
   PumpkinHeadgear,
   SpringHeaddress,
   SummerHeaddress,
   AutumnHeaddress,
   WinterHeaddress,
   LolitaHeaddress,
   Headdress,
   CatEars,
   Crown,
   FourSeasons,
   SilkHat,
   FeatherBoots,
   HeavyBoots,
   LeatherBoots,
   KnightBoots,
   SnowBoots,
   IceSkates,
   PiyoSandals,
   StepInBoots,
   GhostBoots,
   IronGeta,
   StriderBoots,
   SecretShoes,
   WetBoots,
   SneakingBoots,
   FastStepBoots,
   WaterShoes,
   RocketWing,
   SilverBoots,
   GoldBoots,
   BoneBoots,
   FairyBoots,
   FreeFarmingShoes,
   Shirt,
   Vest,
   WoolyShirt,
   MercenarysCloak,
   Mail,
   CottonCloth,
   ChainMail,
   ScaleVest,
   Protector,
   WindCloak,
   SparklingShirt,
   PlatinumMail,
   LamellarVest,
   ElvishCloak,
   PowerProtector,
   DragonCloak,
   RuneVest,
   RoyalGarter,
   FourDragonsVest,
   Brush,
   Clippers,
   MagnifyingGlass,
   TurnipSeeds,
   PotatoSeeds,
   CucumberSeeds,
   StrawberrySeeds,
   CabbageSeeds,
   MoondropSeeds,
   ToyherbSeeds,
   TomatoSeeds,
   CornSeeds,
   OnionSeeds,
   PumpkinSeeds,
   PineappleSeeds,
   PinkCatSeeds,
   EggplantSeeds,
   CarrotSeeds,
   YamSeeds,
   SpinachSeeds,
   GreenPepperSeeds,
   CharmBlueSeeds,
   FodderSeeds,
   CherryGrassSeeds,
   LampGrassSeeds,
   BlueCrystalSeeds,
   EmeryFlowerSeeds,
   IronleafSeeds,
   CloverSeeds,
   FireflowerSeeds,
   GreenCrystalSeeds,
   NoelGrassSeeds,
   AutumnGrassSeeds,
   PomPomGrassSeeds,
   RedCrystalSeeds,
   WhiteCrystalSeeds,
   PinkTurnipSeeds,
   RadishSeeds,
   LeekSeeds,
   BokChoySeeds,
   GoldCabbageSeeds,
   GoldPumpkinSeeds,
   GoldPotatoSeeds,
   GoldTurnipSeeds,
   GoldMelonSeeds,
   HotHotSeeds,
   AppleTreeSeeds,
   OrangeTreeSeed,
   GrapeTreeSeed,
   ShiningSeed,
   DungeonSeed,
   SwordSeed,
   ShieldSeed,
   WettablePowder,
   Greenifier,
   GreenifierPlus,
   FormulaA,
   FormulaB,
   FormulaC,
   NoRotAlpha,
   NoRotBeta,
   Giantizer,
   Minimizer,
   Fodder,
   Fur_S,
   Fur_M,
   Fur_L,
   Yarn,
   ScrapMetal,
   Iron,
   Bronze,
   Silver,
   Gold,
   Platinum,
   Orichalcum,
   Diamond,
   Ruby,
   Emerald,
   Sapphire,
   Amethyst,
   Aquamarine,
   CheapCloth,
   QualityCloth,
   SilkCloth,
   Arrowhead,
   WarriorsProof,
   Glue,
   OldBandage,
   Gunpowder,
   EarthCrystal,
   DevilHorn,
   DevilBlood,
   MagicPowder,
   MagicCrystal,
   ShoulderPiece,
   GiantsNail,
   GiantsGloves,
   HammerPiece,
   InsectCarapace,
   InsectJaw,
   SpidersThread,
   PrettyThread,
   PrettyCarapace,
   RigidHorn,
   ScorpionTail,
   ScorpionPincer,
   PantherClaw,
   DragonFang,
   WolfFang,
   QualityFur,
   BullsHorn,
   BirdsFeather,
   WindCrystal,
   Fur,
   Root,
   Spore,
   PoisonPowder,
   PlantStem,
   StrongVine,
   FishFossil,
   WaterCrystal,
   TurtleShell,
   FireCrystal,
   GhostHood,
   Skull,
   BrokenHilt,
   BrokenBox,
   FairyDust,
   SmallCrystal,
   WoolyFurball,
   LightCrystal,
   DarkCrystal,
   LoveCrystal,
   RaccoonLeaf,
   DragonBones,
   RedLionFur,
   BlueLionFur,
   BrokenIceWall,
   Ammonite,
   IcyNose,
   ChestHair,
   ChimeraTail,
   GrimoireScale,
   LegendaryScale,
   DragonFin,
   MovingBranch,
   ElectroCrystal,
   MelodyBottle,
   GolemTablet,
   EarthwyrmScale,
   FirewyrmScale,
   AmbrosiasThorns,
   LightningMane,
   CursedDoll,
   PuppetryStrings,
   LeftRockShard,
   RightRockShard,
   CrystalSkull,
   ThroneoftheEmpire,
   WindDragonTooth,
   RuneSphereShard,
   RafflesiaPetal,
   MTGUPlate,
   CheapPropeller,
   QualityPropeller,
   RustyScrew,
   ShinyScrew,
   PalmClaw,
   MalmClaw,
   BigCrystal,
   RuneCrystal,
   GreenCore,
   RedCore,
   YellowCore,
   BlueCore,
   WaterDragonAsh,
   FireDragonAsh,
   EarthDragonAsh,
   HolySpore,
   WhiteStone,
   InvisibleStone,
   ShadeStone,
   DoubleSteel,
   TenFoldSteel,
   RoundStone,
   GlittaAugite,
   LightOre,
   ScrapMetalPlus,
   Stick,
   QualityPuffyFur,
   YellowDown,
   PenguinDown,
   IvoryTusk,
   UnbrokenIvoryTusk,
   TinyGolemStone,
   ParalysisPoison,
   BlackBirdFeather,
   Vine,
   InsectHorn,
   MysteriousPowder,
   WetScale,
   Magic,
   GoldWolfFang,
   BlueGiantsGlove,
   ThickStick,
   MagicClaw,
   GlisteningBlade,
   FairyElixir,
   GreatHammerShard,
   GolemStone,
   BlackTortoiseShell,
   ThunderbirdFeather,
   BigGiantsNail,
   YellowFeather,
   QualityWornCloth,
   PiratesArmor,
   BladeShard,
   ProofofRank,
   TurnipsMiracle,
   DragonScale,
   GolemSpiritStone,
   AncientOrcCloth,
   QueensJaw,
   PoisonKing,
   DangerousScissors,
   ChimerasClaw,
   TabletofTruth,
   BigBirdsComb,
   BattleTurnip,
   BlackScale,
   BlueScale,
   GlitterScale,
   CrimsonScale,
   LoveScale,
   DragonicStone,
   MasuTrout,
   Squid,
   Taimen,
   Sardine,
   Char,
   Chub,
   GlitterSnapper,
   Skipjack,
   Turbot,
   Gibelio,
   Salmon,
   Mackerel,
   Needlefish,
   Pike,
   Sunsquid,
   Shrimp,
   Snapper,
   ThrobbySnapper,
   RainbowTrout,
   Flounder,
   Blowfish,
   Yellowtail,
   CrucianCarp,
   Tuna,
   Girella,
   FallFlounder,
   CherrySalmon,
   LampSquid,
   Lobster,
   PondSmelt,
   SandFlounder,
   Rockfish,
   Can,
   Boot,
   RareCan,
   Rock,
   Branch,
   Lumber,
   MaterialStone,
   Escape_S,
   Fireball_S,
   BigFire_S,
   Explosion_S,
   WaterLaser_S,
   ParallelLaser_S,
   DeltaLaser_S,
   ScrewRock_S,
   EarthSpike_S,
   AvengerRock_S,
   SonicWind_S,
   DoubleSonic_S,
   PenetrateSonic_S,
   LightBarrier_S,
   Shine_S,
   Prism_S,
   DarkBall_S,
   DarkSnake_S,
   Darkness_S,
   Cure_S,
   CureAll_S,
   MasterCure_S,
   Medipoison_S,
   Mediparalyze_S,
   Mediseal_S,
   GreetingSpell_S,
   PowerWave_S,
   DashSlash_S,
   RushAttack_S,
   RoundBreak_S,
   MindThrust_S,
   Gust_S,
   Storm_S,
   Blitz_S,
   TwinAttack_S,
   RailStrike_S,
   WindSlash_S,
   FlashStrike_S,
   NaiveBlade_S,
   SteelHeart_S,
   DeltaStrike_S,
   Hurricane_S,
   ReaperSlash_S,
   Millionstrike_S,
   AxelDisaster_S,
   StardustUpper_S,
   TornadoSwing_S,
   GrandImpact_S,
   GigaSwing_S,
   UpperCut_S,
   DoubleKick_S,
   StraightPunch_S,
   NekoDamashi_S,
   RushPunch_S,
   Cyclone_S,
   RapidMove_S,
   BonusConcerto_S,
   StrikingMarch_S,
   IronWaltz_S,
   Minerals,
   Liquids,
   ClawsandFangs,
   SticksandStems,
   ClothsandSkins,
   Furs,
   Strings,
   Shards,
   PowdersandSpores,
   Scales,
   ShellsandBones,
   Stones,
   Turnip_B,
   Crystals,
   Jewels,
   Feathers,
   Jam,
   Curry,
   Squid_B,
   BattleTurnip_B,
   GoldBattleTurnip,
   Bullet,
   GoldenBullet,
   CherryTurnip,
   DisgustingFood
} ITEMID;
 typedef enum <ubyte> {
   Spring,
   Summer,
   Fall,
   Winter
} MONTH;
 // 5-bit enum; Traveler_29 to _31 crash (no picture)
typedef enum <ushort> {
   None,
   Vishnal,
   Clorica,
   Volkanon,
   Forte,
   Kiel,
   Bado,
   Margaret,
   Dylas,
   Arthur,
   Porcoline,
   XiaoPai,
   LinFa,
   Amber,
   Illuminata,
   Doug,
   Blossom,
   Dolce,
   Jones,
   Nancy,
   Leon,
   Ventuswill,
   Son,
   Daughter,
   Barrett,
   Raven,
   MistressTrupin,
   TravelerM1,
   TravelerM2
} PTNR;
 //-----------------------------------
// Define aux structures
 // Placeholder
typedef struct {
 } UNKNWN;
 // Character and Farm names
typedef struct {
   char  charName[19];
   char  farmName1[25];
   char  farmName2[25];
   char  farmName3[25];
   char  farmName4[25];
   char  farmName5[25];
} NAMES;
 // bitfield for active saves
typedef struct {
   ulong slot01 : 1;
   ulong slot02 : 1;
   ulong slot03 : 1;
   ulong slot04 : 1;
   ulong slot05 : 1;
   ulong slot06 : 1;
   ulong slot07 : 1;
   ulong slot08 : 1;
   ulong slot09 : 1;
   ulong slot10 : 1;
   ulong slot11 : 1;
   ulong slot12 : 1;
   ulong slot13 : 1;
   ulong slot14 : 1;
   ulong slot15 : 1;
   ulong slot16 : 1;
   ulong slot17 : 1;
   ulong slot18 : 1;
   ulong slot19 : 1;
   ulong slot20 : 1;
} SLOTB;
 //-----------------------------------
// Define main structures for 3DS
 typedef struct {
   char  magic[4];
   uint  CRC32<format=hex>;
   struct {
      ubyte slot1 : 1;
      ubyte slot2 : 1;
      ubyte slot3 : 1;
      ubyte : 5;
   } activeSaveSlots;
   ubyte loadPos : 4 <comment="Cursor position, slots 0 - 2">;
   ubyte extraOrders : 4;
} HEADER <size=28>;
 typedef struct {
   ubyte    timeMinute;
   ubyte    timeHour;
   ubyte    currentDay;
   MONTH    currentMonth;
   short    currentYear;
   DIFF     difficulty;
   ubyte    costume;
   ushort   level <comment="In-game Level - 1">;
   ushort   location : 10;
   PTNR     partner : 5;
   ushort   UnknownB : 1;
   GENDER   gender : 1;
   ITEMID   headGear : 11;
   ITEMID   mainHand : 10;
   ITEMID   offHand : 10;
   NAMES    names;
} SLOT <name=ReadSaveChar, read=ReadSaveInfo, size=160>;
 //-----------------------------------
// Define main structures for Switch
 typedef struct {
   char  magic[4];
   uint  CRC32<format=hex>;
   SLOTB activeSaveSlots;
   SLOTB activeSaveSlotsNW <comment="for Newlywed Mode">;
   struct {
      ubyte gameCleared : 1 <comment="Unlocks Extra Orders and can change select screen character appearance">;
      ubyte extraOrdersA : 1 <comment="EO 'Unlock all newlywed modes' (needs ExtraOrdersB active)">;
      ubyte    : 2;
      ubyte extraOrdersB : 1 <comment="Unlocks EOs for enemy levels and town events">;
      ubyte extraOrdersC : 1 <comment="Unlocks EO for inheriting savegames">;
      ubyte    : 2;
       ubyte    : 1;
      ubyte unlockedAllNewlywed : 1 <comment="Unlocks all Newlywed Modes">;
      ubyte japaneseAudio : 1;
      ubyte    : 5;
       ubyte    : 8;
       ubyte    : 8;
   } bitflags;
   ushort loadPos <comment="Load cursor position, slots 0 - 19">;
   ushort loadPosNW <comment="Newlywed Mode load cursor position, slots 0 - 19">;
} SHEADER <size=1264>;
 typedef struct {
   ubyte    timeMinute;
   ubyte    timeHour;
   ubyte    currentDay;
   MONTH    currentMonth;
   short    currentYear;
   DIFF     difficulty;
   ubyte    Unknown;
   ubyte    costume;
   ubyte    isSuperHard <comment="Extra flag; Hard + this = Hell">;
   ushort   UnknownA <format=hex>;
   ushort   level <comment="In-game Level - 1">;
   ushort   location : 10;
   PTNR     partner : 5;
   ushort   UnknownB : 1;
   GENDER   gender : 1;
   ITEMID   headGear : 11;
   ITEMID   mainHand : 10;
   ITEMID   offHand : 10;
   NAMES    names;
} SSLOT <name=ReadSaveCharS, read=ReadSaveInfoS, comment=ReadSaveCommentS, size=164>;
  //--------------------------------------------
// Custom functions 
 // Read and display char names on save slots
string ReadSaveChar( SLOT &sslot )
{
   local string s;
   s += sslot.names.charName;
   if( s != "" ) {
      SPrintf( s, "%s, Level %d ", s, sslot.level + 1 );
//      if( sslot.partner )
//         s = s + "+ " + EnumToString( sslot.partner );
      return s;
   }
   else
      return "(none)";
}
 // Read and display char names on save slots for Special
string ReadSaveCharS( SSLOT &sslot )
{
   local string s;
   s += sslot.names.charName;
   if( s != "" ) {
      SPrintf( s, "%s, Level %d ", s, sslot.level + 1 );
      if( sslot.partner )
         s = s + "+ " + EnumToString( sslot.partner );
      return s;
   }
   else
      return "(none)";
}
 // Display save info for Special
string ReadSaveInfoS( SSLOT &sinfo )
{
   local string s;
   // Put the var value into a buffer string via SPrintf
   if ( sinfo.currentDay != 0 ) 
      SPrintf( s, "%02d:%02d, %02d. %s Y%d", sinfo.timeHour, sinfo.timeMinute, sinfo.currentDay, EnumToString( sinfo.currentMonth ), sinfo.currentYear );
   return s;
}
 // Display save info
string ReadSaveInfo( SLOT &sinfo )
{
   local string s;
   // Put the var value into a buffer string via SPrintf
   if ( sinfo.currentDay != 0 ) 
      SPrintf( s, "%02d:%02d, %02d. %s Y%d", sinfo.timeHour, sinfo.timeMinute, sinfo.currentDay, EnumToString( sinfo.currentMonth ), sinfo.currentYear );
   return s;
}
 // Display unknown values in comments for quick comparison
string ReadSaveCommentS( SSLOT &sinfo )
{
   local string s;
   if ( sinfo.currentDay != 0 ) {
      s = EnumToString( sinfo.difficulty );
      if( (s == "HARD") && sinfo.isSuperHard )
         s = "HELL";
      SPrintf( s, "%s C%d %d 0x%02X %d", s, sinfo.costume, sinfo.Unknown, sinfo.UnknownA, sinfo.UnknownB );
   }
   return s;
}
 //-----------------------------------
// Define file itself
 if (FileSize() == 0x1FC) {
   HEADER   header;
   SLOT     Save1;
   SLOT     Save2;
   SLOT     Save3;
}
else {
   SHEADER  header;
   SSLOT    saves[20];
   SSLOT    savesNW[20];
}

Comments