Skip to content

Don't use dir-tag inside of game-tag #5

Closed

Description

@agowa

Hi once more. RV does not appear to like the dir-tag being used inside of a game-tag. Your Datfile Creator Studio however appears to be creating dir-tags inside a game-tag when there are no files directly inside the game folder as opposed to putting the path into the name attribute of the rom tag (which it does when there are also files directly in the games base directory).

Edit: Basically it looks like using the dir-tag inside of a game-tag breaks forcepacking="fileonly". Could be an RV bug.

Settings:
Image

RV tries to modify these files like this then:
Image

Excerpt from the DAT file:

<?xml version="1.0"?>
<datafile>
	<header>
		<name>GogDownloader</name>
		<description></description>
		<category>Games</category>
		<version>0.0.1</version>
		<date>2026-07-27</date>
		<author>agowa338</author>
		<url>https://gog.com/u/agowa338</url>
		<homepage></homepage>
		<comment>1. get lgogdownloader 2. update cache "lgogdownloader --update-cache" 3. Download using "lgogdownloader --download --create-xml=automatic --report --no-platform-detection --platform all --language all --use-cache --save-serials --save-game-details-json --save-product-json --save-logo --save-icon --include all --automatic-xml-creation --save-changelogs --include-hidden-products --galaxy-download-cloud-saves .\* --no-fast-status-check"</comment>
		<romvault forcepacking="fileonly"/>
	</header>
	<game name="cyberpunk_2077_goodies_collection">
		<description>cyberpunk_2077_goodies_collection</description>
		<dir name="extras">
			<rom name="all_goodies.zip" size="4012288605" crc="0810413b" sha1="d4251962e2693cced896d436da319b1309c90867" sha256="f1592bb11b1e22be627182e3960c9beac7f4f5cb4869a558bd9c43ff78498552" md5="aa3650f722a9efdc460bb37431b35d59" blake3="46393ec7696b9de0e2fffb4914cb5fc42bcb3be2b3cdbc2b228a72fd385f5a9c"/>
			<rom name="concept_arts.zip" size="393603817" crc="a0031a72" sha1="91b76b26f9a71f67c190b2060bd78597b9f454d3" sha256="fb8c04e0f2f7d1c88843b4502f342927ebcc832e7132c1f21de593f275c40e97" md5="156484e6fa9e42a61078a345d4cb1577" blake3="ad9f1e58371bf100c8d711fe76aad9ccbe5f2de18fe0eb83890a1537636933ec"/>
			<rom name="cover_arts.zip" size="656544737" crc="3606356b" sha1="f06512a6d349a07d175ad49c8aa27cda43f31a23" sha256="13b2af4888dc4d76aa836b97b2c7259e688e1e207115e0ac7b69db7be56b34e9" md5="ecd8fe4bc2512f4f72c56ec8505f7c41" blake3="b80474f26bd758bd6fa22c34cbbfd68d4a86eecf3d0742740b65f24067e22403"/>
			<rom name="cyberpunk_2077_anniversary_wallpapers.zip" size="1615676865" crc="100e908c" sha1="47874491df4f5e06f5d94d0ceec1dbc5df6c4714" sha256="0c9edc19bea5bd0079936d9714fed47716922c385cf7190948deeac65e729def" md5="2dad3782cef3fe7bf8e931ff0cc12b7f" blake3="56fb2e662741920f04851118b4993f5c6f3dcf2d60c9ed441a367aaf353e7e67"/>
			<rom name="gangs_graffiti.zip" size="23800458" crc="3b437a8b" sha1="f5d5731d0d5a948ac511b108b31ad4fd7dc3f5bc" sha256="3a5ce5e45c647bd75bdc603a0e824eab3871801bb203d6d6920af63d3db1eb59" md5="cd843fd016d0f9fd929682e42cf9c11d" blake3="c020ed20afa8849ce159985bc51781cdb895b80fb95c82c7e8b8d962b3b0970f"/>
			<rom name="posters.zip" size="1354461510" crc="6fe4971c" sha1="db0ee515600acde4b6df09e078d5b046e0db199e" sha256="a384f5a2f0b7a17bb63c87b4bd474feb437066776b0f2605bd34d7c7f6c263b1" md5="949ca23c4db9a27c926fd9be590b2c0c" blake3="a9c4fc6f5e858923b9d2859e2ba69422416b95e7d6423b9c11c0ea33b6810c53"/>
			<rom name="screenshots.zip" size="793459973" crc="97d074cd" sha1="967804221ddcd7154e1592cc565916cf424a0140" sha256="d29f3643f98a0844450345c0d7fe70b460f8338fe05e0dc4ff0397ae66d2ca42" md5="c30b3bcbfc113606b03359b0f2182cff" blake3="fca5388eadc915d8640c0f10432c2c96788e76d0a1f25cc61e2da6a6eec4aa1f"/>
			<rom name="steelbook_arts.zip" size="38822248" crc="0d854e75" sha1="ef2cfe6e3deb1fe1bb394b6c44ce866c18b21528" sha256="ea292737e0c4c1579fb9a4eee9f059780ec11d40766342441786a1ab76dbcd71" md5="c29cda20dd0179c020e6fab3688fd4ad" blake3="6ce52702c344ae2c20083acb24f883bdf4432f54665f2b08c540c2ed2574de7a"/>
			<rom name="wallpapers.zip" size="751595994" crc="b78f901d" sha1="d91ca684ea2d3606856867260e9834f8897b2420" sha256="1d1a2fb6a91b74da8e79523074f5cc2284cc00aebadb0de8152172884cfce650" md5="03a5c647f7291927673a045bc1845c62" blake3="33a4861f7d4902464d1066fa8a24cd493a7bbc9b2e201b33071ba2948e3afe89"/>
		</dir>
	</game>
</datafile>

Activity

  1. Eggmansworld commented on Jul 27, 2026

    @Eggmansworld
    Owner

    Thanks for reporting this — your reading was correct, and it turned out to be worth a much wider check.

    What was happening: the "First Level Dirs as Games" structure branched on whether a game folder held loose files of its own. If it did, subfolders were merged into the rom name; if it did not, they were written as <dir> tags inside the <game>. RomVault does not read <dir> inside <game> — it discards those entries silently, so the set loads with nothing in it and RomVault then offers to relocate the real files, which is what you saw.

    The fix: that structure now always merges subfolders into path-prefixed rom names, which is the only encoding RomVault understands for a folder inside a set.

    Reading RomVault's parser to confirm this turned up more of the same, so two options that could never work have been removed outright:

    • The "Dirs" structure wrote <rom> inside <dir>, which RomVault also does not read. It loaded zero roms from every dat it ever produced.
    • The "Legacy" format made game containers <dir>, so every legacy dat at any structure loaded completely empty too.
    • Zipped dats no longer offer the folder-based structures. A <game> resolves to a physical archive, decided once per dat from forcepacking, so pointing one at a folder holding separate zips claims an archive that does not exist — RomVault would offer to repack the collection into it. There is no correct way to write those, so Standard is now the only structure for Zipped.

    Testing: every structure was fed through RomVault's own DAT parser and checked for how many roms it actually loads. All remaining combinations now load 100%. As a wider check, two vetted collections were swept: 8,830 datfiles containing 39,907,576 rom entries, with RomVault loading all 39,907,576 and no invalid nesting anywhere.

    Structures are also renamed to Standard, Grouped, and Grouped + Folders, and there is a new Structure Guide in the Help menu showing one folder written all three ways.

    Fixed in v0.1.5.

  2. added a commit that references this issue on Oct 25, 2026
    584f37b
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions