Skip to content

Releases: Eggmansworld/DatfileCreatorStudio

v0.1.7

Choose a tag to compare

@Eggmansworld Eggmansworld released this 27 Jul 22:29

Removed

The "Grouped + Folders" structure. Since v0.1.6 every structure records empty folders, which was the only thing this one uniquely did. Its remaining difference — writing an entry for folders that already contain files — is discarded by RomVault on load, because those folders are implied by the paths of the files inside them. It produced results identical to Grouped.

Two structures remain: Standard and Grouped. Saved settings that used the removed option move to Grouped and say so in the activity log.

Verification

Confirmed both remaining structures still capture empty folders at every depth and zero-byte files, by running the output through RomVault's own reader and clean pipeline — the same steps RomVault performs when loading a dat.

Also checked the paths that could quietly break on a removal like this:

  • A config still requesting the removed structure is coerced to a valid one, and the dat written from it is correct.
  • An old config file loads, migrates to Grouped, keeps its other settings, and reports the change.
  • The Preview window offers only the two remaining structures.
  • The Structure Guide renders with the retired section gone.

Download

DatfileCreatorStudio-win-x64.zip — self-contained, single file, no .NET runtime required. Fully portable: all settings live in DatfileCreatorStudio.config next to the executable.

Windows only.

v0.1.6

Choose a tag to compare

@Eggmansworld Eggmansworld released this 27 Jul 21:55

A data-completeness release, following straight on from v0.1.5.

Fixed

Empty folders are now recorded in every structure, at every depth.

An empty folder can only be stated in a datfile by an explicit entry. RomVault keeps that entry when nothing else in the set lives inside the folder, and prunes it when something does — so a folder with no entry is simply gone, and RomVault will never recreate it.

Previously:

  • Standard and Grouped wrote no folder entries at all, so every empty folder in a collection was dropped.
  • Grouped + Folders only covered the first level below a game, so an empty folder nested deeper was lost even there.

All three now write an entry for any folder with nothing inside it, at any depth, using the canonical zero-byte values RomVault expects — size="0" crc="00000000" sha1="da39a3ee…", plus md5/sha256/blake3 when those hashes are enabled.

Zero-byte files were already being captured correctly and are unchanged.

Changed

Grouped + Folders no longer differs from Grouped in RomVault. It still writes an entry for every folder rather than only the empty ones, but RomVault discards the redundant ones as it loads, because a folder holding files is already implied by their paths. Both structures now produce an identical result in RomVault. Choose Grouped + Folders only if something other than RomVault reads your dats and expects every folder listed explicitly.

The README and the in-app Structure Guide were rewritten to match: empty folders are no longer what separates the structures, so the worked examples and the guidance for Grouped + Folders now describe what actually distinguishes them.

Verification

Output was run through RomVault's own reader and its clean pipeline — the same steps RomVault performs when loading a dat. A test tree with an empty folder beside a game's files, another nested three levels down, and zero-byte files in two different sets now materialises complete, and identically, from all three structures.

Download

DatfileCreatorStudio-win-x64.zip — self-contained, single file, no .NET runtime required. Fully portable: all settings live in DatfileCreatorStudio.config next to the executable.

Windows only. There are no Linux or macOS builds.

v0.1.5

Choose a tag to compare

@Eggmansworld Eggmansworld released this 27 Jul 20:45

A correctness release. Every structure the app can write has now been checked against RomVault's own DAT parser, and two structures that RomVault could never read have been removed.

Fixed

  • Incremental runs could give two files each other's hashes. When two different files shared both a filename and a size, carry-forward matched them by name alone and handed one the other's hashes. Matching is now done on each file's path, and any entry that could refer to more than one file is rehashed instead of guessed at. Files that are genuinely identical still carry forward, so nothing gets slower. Full (non-incremental) runs were never affected. (#4)

  • The elapsed timer reset itself after 24 hours. Long runs now show days as DD:HH:MM:SS; shorter runs look exactly as before. (#3)

  • The validator reported folder entries as broken. A rom name ending in / records that a folder exists rather than describing a file, and RomVault writes those itself with no hashes. They are no longer flagged, while any values they do carry are still checked. (#2)

  • "First Level Dirs as Games" produced dats RomVault read as empty whenever a game folder held no loose files of its own. It now always merges subfolders into the rom name, which is the only encoding RomVault understands for a folder inside a set. (#5)

Removed

Both of these wrote rom entries inside <dir> tags, which RomVault does not read — dats written either way loaded as completely empty, without any warning:

  • The "Dirs" structure.
  • The "Legacy" format. The Modern/Legacy choice is gone; output is always the modern form.

Zipped dats now always use Standard. The two folder-based structures pointed a game at a folder containing separate archives, which claims an archive exists that does not — RomVault would offer to repack the collection into it. There is no correct way to write them, so they are no longer offered for Zipped.

If your saved settings used a removed option, the app moves you to the nearest valid choice and says so in the activity log.

Changed

  • Structures now have names instead of numbers: Standard, Grouped, and Grouped + Folders. "Merge" was dropped because it collided with MAME's merged/split/non-merged set semantics, and "Archives as Games" was simply wrong for Mixed dats, where a set is a folder of loose files.

  • New Structure Guide under the Help menu, and linked beside the structure picker. It walks through a single example folder written all three ways, with the resulting XML and what RomVault makes of each.

  • The Folder Structure Analyzer and the Preview window had each been using their own structure numbering, so their advice named options that did not exist on the main window. All three now agree.

Verification

Beyond the targeted tests for each fix, every structure was checked by feeding real output through RomVault's own parser and counting what it loads, then across two large vetted collections: 8,830 datfiles containing 39,907,576 rom entries — RomVault loaded all 39,907,576, with no invalid nesting anywhere.

Download

DatfileCreatorStudio-win-x64.zip — self-contained, single file, no .NET runtime required. Fully portable: all settings live in DatfileCreatorStudio.config next to the executable.

Windows only. There are no Linux or macOS builds.

v0.1.4

Choose a tag to compare

@Eggmansworld Eggmansworld released this 12 Jul 21:04

Improved

  • The status line now shows the file being processed right now. During a run, the strip above the activity log used to echo the last completed item, so it always trailed one file behind — misleading when a multi-gigabyte file sits in the hasher for minutes. It now shows the in-flight file as » filename the moment processing starts (full-hash and incremental runs alike), while completed items keep scrolling into the log below as before.

Downloads

  • Windows: DatfileCreatorStudio-win-x64.zip

Self-contained, single-file build — no .NET runtime required. Fully portable: all settings live in a single DatfileCreatorStudio.config next to the executable.

v0.1.3

Choose a tag to compare

@Eggmansworld Eggmansworld released this 12 Jul 16:29

New

  • Completion sound. An audio cue now plays the moment a datfile run finishes — handy when a long run is going and you've wandered off. Configure it under Tools → Completion Sound...: enable/disable, pick any .wav or .mp3, and test it instantly. Two default sounds ship in a sounds folder next to the executable — drop your own files in there (or browse anywhere) to use them instead. Enabled by default with the bundled cue, and the cue fires on every run end: completed, completed with errors, or stopped (a soft stop can finish long after you've walked away).

Playback needs nothing extra — the built-in Windows audio support handles both formats.

Downloads

  • Windows: DatfileCreatorStudio-win-x64.zip

Self-contained, single-file build — no .NET runtime required. Fully portable: all settings live in a single DatfileCreatorStudio.config next to the executable.

v0.1.2

Choose a tag to compare

@Eggmansworld Eggmansworld released this 09 Jul 22:10

Bug-fix release.

Fixes

  • Loose files at a collection's root are now written as bare <rom> entries. Previously they were wrapped in a <game> tag named after the root folder, which RomVault interprets as a subfolder — it would then relocate those loose files into a folder that didn't exist in the original layout. They now stay as top-level <rom> entries so the dat matches the folder exactly. Affects Mixed dats in the Modern structures (Structure 1/2/3). Incremental updates continue to carry these root files forward without re-hashing.

  • The activity-log drawer now reliably follows the latest output. During a run the log kept falling behind the current action or getting stuck when scrolled. It now stays pinned to the newest line, and only pauses following if you deliberately scroll up — resuming as soon as you scroll back to the bottom.

Downloads

  • Windows: DatfileCreatorStudio-win-x64.zip
    Self-contained, single-file builds — no .NET runtime required. Fully portable: all settings live in a single DatfileCreatorStudio.config next to the executable.

Datfile Creator Studio v0.1.1

Choose a tag to compare

@Eggmansworld Eggmansworld released this 08 Jul 16:28

A visual polish release on top of v0.1.0.

New

  • Selectable accent themes. A new Accent picker in the action bar offers System plus nine bright accents — Azure, Emerald, Amethyst, Crimson, Amber, Rose, Cyan, Slate, and a Rainbow. Each recolours the accent elements (Start button, radios, checkboxes, sliders, progress bars, selection, focus rings) and paints a slim signature bar across the top of the window — a solid line for the colour themes, a full spectrum for Rainbow. Works in Dark or Light mode, and your choice persists between runs.
  • Calmer log drawer. When the activity-log drawer opens, the main panel area now gently fades so the focus lands on the log and the pushed-up controls recede into the background.

Everything from v0.1.0 is unchanged — the generation engine and all nine tools, with output still verified byte-for-byte against the original Python suite.

Install

Windows: download DatfileCreatorStudio-win-x64.zip, extract, run DatfileCreatorStudio.exe. No .NET runtime required.

See the README for full documentation.

Datfile Creator Studio v0.1.0

Choose a tag to compare

@Eggmansworld Eggmansworld released this 08 Jul 04:12

First public release of Datfile Creator Studio — a native C# / Avalonia rewrite of Eggman's Datfile Creator Suite, with a modern interface, an auto-sliding activity-log drawer, true multithreaded hashing, and a single self-contained executable that needs no runtime installed.

Its output is byte-for-byte identical to the original Python suite. An automated parity harness compares both engines over the same test collection — both dat types × three generation modes × all four structures, every hash (BLAKE3 included), incremental update, the folder analyzer, and the dat-writing tools — and every check passes byte-identical.

What's in it

  • Generation engine — Mixed / Zipped dat types, three generation modes, four structure options, CRC32 + SHA1 always with optional MD5 / SHA-256 / BLAKE3, native ZStandard (RVZSTD) zip reading, incremental update with a pre-flight report, and a network-speed cap.
  • Live Preview — re-render any completed dat across all four structures instantly, no re-hashing.
  • Nine tools — Folder Structure Analyzer, Long Path Length Repair, Bulk Datfile Header Updater, Game and ROM Counter, Validate Datfiles, Merge Datfiles, Recursive Archive Extractor, ZIP Store Packer, and Remove ReadOnly Attribute.
  • Fully portable — one config file next to the exe. Follows your OS light/dark theme.

Install

Windows: download DatfileCreatorStudio-win-x64.zip, extract, run DatfileCreatorStudio.exe. No .NET runtime required.

Only the Recursive Archive Extractor tool needs an external program (7-Zip-ZStandard), and only if you use it.

See the README for full documentation.