{"id":118,"date":"2014-01-24T21:16:56","date_gmt":"2014-01-24T17:16:56","guid":{"rendered":"http:\/\/zxstudio.org\/blog\/?p=118"},"modified":"2015-04-12T21:19:23","modified_gmt":"2015-04-12T17:19:23","slug":"qdf-data-file","status":"publish","type":"post","link":"http:\/\/zxstudio.org\/blog\/2014\/01\/24\/qdf-data-file\/","title":{"rendered":"QDF data file"},"content":{"rendered":"<p>The games stores its resources inside six files: datafile.qdf, datafile.qdf1 \u2026 datafile.qdf5. The structure of qdf file is pretty obvious: first comes file header, then a set of structures that describe packed files (containing file names, offsets, and sizes), and then raw files\u2019 data. Only the first file (datafile.qdf) contains header and files information. Each qdf file has no more than 1572864000 bytes of data. So, a single packed game file could be split among multiple qdfs, which we should take into account when reading data.<a href=\"http:\/\/zxstudio.org\/blog\/wp-content\/uploads\/2015\/04\/datafile.qdf_.png\"><img loading=\"lazy\" class=\"alignnone size-full wp-image-119\" src=\"http:\/\/zxstudio.org\/blog\/wp-content\/uploads\/2015\/04\/datafile.qdf_.png\" alt=\"datafile.qdf\" width=\"716\" height=\"292\" srcset=\"http:\/\/zxstudio.org\/blog\/wp-content\/uploads\/2015\/04\/datafile.qdf_.png 716w, http:\/\/zxstudio.org\/blog\/wp-content\/uploads\/2015\/04\/datafile.qdf_-300x122.png 300w\" sizes=\"(max-width: 716px) 100vw, 716px\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The games stores its resources inside six files: datafile.qdf, datafile.qdf1 \u2026 datafile.qdf5. The structure of qdf file is pretty obvious: first comes file header, then a set of structures that describe packed files (containing file names, offsets, and sizes), and then raw files\u2019 data. Only the first file (datafile.qdf) contains header and files information. Each <a class=\"read-more\" href=\"http:\/\/zxstudio.org\/blog\/2014\/01\/24\/qdf-data-file\/\">[&hellip;]<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[2],"tags":[6],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v18.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>QDF data file - ZX Studio Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/zxstudio.org\/blog\/2014\/01\/24\/qdf-data-file\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"QDF data file - ZX Studio Blog\" \/>\n<meta property=\"og:description\" content=\"The games stores its resources inside six files: datafile.qdf, datafile.qdf1 \u2026 datafile.qdf5. The structure of qdf file is pretty obvious: first comes file header, then a set of structures that describe packed files (containing file names, offsets, and sizes), and then raw files\u2019 data. Only the first file (datafile.qdf) contains header and files information. Each [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"http:\/\/zxstudio.org\/blog\/2014\/01\/24\/qdf-data-file\/\" \/>\n<meta property=\"og:site_name\" content=\"ZX Studio Blog\" \/>\n<meta property=\"article:published_time\" content=\"2014-01-24T17:16:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2015-04-12T17:19:23+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/zxstudio.org\/blog\/wp-content\/uploads\/2015\/04\/datafile.qdf_.png\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Razgriz\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"http:\/\/zxstudio.org\/blog\/#\/schema\/person\/0a2cf38b4b9456c20b27bf9837c90b78\",\"name\":\"MaxEd\",\"logo\":{\"@id\":\"http:\/\/zxstudio.org\/blog\/#personlogo\"},\"description\":\"I'm a video games programmer. I have worked in game industry since 2008 on MMOs and mobile games, but now I work for Owlcat Games on great old-school RPGs. In my free time, I like to play rock'n'roll on my guitar and travel.\"},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/zxstudio.org\/blog\/#website\",\"url\":\"http:\/\/zxstudio.org\/blog\/\",\"name\":\"ZX Studio Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"http:\/\/zxstudio.org\/blog\/#\/schema\/person\/0a2cf38b4b9456c20b27bf9837c90b78\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/zxstudio.org\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"http:\/\/zxstudio.org\/blog\/2014\/01\/24\/qdf-data-file\/#primaryimage\",\"inLanguage\":\"en-US\",\"url\":\"http:\/\/zxstudio.org\/blog\/wp-content\/uploads\/2015\/04\/datafile.qdf_.png\",\"contentUrl\":\"http:\/\/zxstudio.org\/blog\/wp-content\/uploads\/2015\/04\/datafile.qdf_.png\",\"width\":716,\"height\":292},{\"@type\":\"WebPage\",\"@id\":\"http:\/\/zxstudio.org\/blog\/2014\/01\/24\/qdf-data-file\/#webpage\",\"url\":\"http:\/\/zxstudio.org\/blog\/2014\/01\/24\/qdf-data-file\/\",\"name\":\"QDF data file - ZX Studio Blog\",\"isPartOf\":{\"@id\":\"http:\/\/zxstudio.org\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"http:\/\/zxstudio.org\/blog\/2014\/01\/24\/qdf-data-file\/#primaryimage\"},\"datePublished\":\"2014-01-24T17:16:56+00:00\",\"dateModified\":\"2015-04-12T17:19:23+00:00\",\"breadcrumb\":{\"@id\":\"http:\/\/zxstudio.org\/blog\/2014\/01\/24\/qdf-data-file\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/zxstudio.org\/blog\/2014\/01\/24\/qdf-data-file\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\/\/zxstudio.org\/blog\/2014\/01\/24\/qdf-data-file\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u043c\u0435\u043d\u044e\",\"item\":\"http:\/\/zxstudio.org\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"QDF data file\"}]},{\"@type\":\"Article\",\"@id\":\"http:\/\/zxstudio.org\/blog\/2014\/01\/24\/qdf-data-file\/#article\",\"isPartOf\":{\"@id\":\"http:\/\/zxstudio.org\/blog\/2014\/01\/24\/qdf-data-file\/#webpage\"},\"author\":{\"@id\":\"http:\/\/zxstudio.org\/blog\/#\/schema\/person\/f221fca82d9bc01ba45831b70ffc2b61\"},\"headline\":\"QDF data file\",\"datePublished\":\"2014-01-24T17:16:56+00:00\",\"dateModified\":\"2015-04-12T17:19:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"http:\/\/zxstudio.org\/blog\/2014\/01\/24\/qdf-data-file\/#webpage\"},\"wordCount\":91,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/zxstudio.org\/blog\/#\/schema\/person\/0a2cf38b4b9456c20b27bf9837c90b78\"},\"image\":{\"@id\":\"http:\/\/zxstudio.org\/blog\/2014\/01\/24\/qdf-data-file\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/zxstudio.org\/blog\/wp-content\/uploads\/2015\/04\/datafile.qdf_.png\",\"keywords\":[\"Open Horizon\"],\"articleSection\":[\"General\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"http:\/\/zxstudio.org\/blog\/2014\/01\/24\/qdf-data-file\/#respond\"]}]},{\"@type\":\"Person\",\"@id\":\"http:\/\/zxstudio.org\/blog\/#\/schema\/person\/f221fca82d9bc01ba45831b70ffc2b61\",\"name\":\"Razgriz\",\"url\":\"http:\/\/zxstudio.org\/blog\/author\/razgriz\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"QDF data file - ZX Studio Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"http:\/\/zxstudio.org\/blog\/2014\/01\/24\/qdf-data-file\/","og_locale":"en_US","og_type":"article","og_title":"QDF data file - ZX Studio Blog","og_description":"The games stores its resources inside six files: datafile.qdf, datafile.qdf1 \u2026 datafile.qdf5. The structure of qdf file is pretty obvious: first comes file header, then a set of structures that describe packed files (containing file names, offsets, and sizes), and then raw files\u2019 data. Only the first file (datafile.qdf) contains header and files information. Each [&hellip;]","og_url":"http:\/\/zxstudio.org\/blog\/2014\/01\/24\/qdf-data-file\/","og_site_name":"ZX Studio Blog","article_published_time":"2014-01-24T17:16:56+00:00","article_modified_time":"2015-04-12T17:19:23+00:00","og_image":[{"url":"http:\/\/zxstudio.org\/blog\/wp-content\/uploads\/2015\/04\/datafile.qdf_.png"}],"twitter_misc":{"Written by":"Razgriz"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Person","Organization"],"@id":"http:\/\/zxstudio.org\/blog\/#\/schema\/person\/0a2cf38b4b9456c20b27bf9837c90b78","name":"MaxEd","logo":{"@id":"http:\/\/zxstudio.org\/blog\/#personlogo"},"description":"I'm a video games programmer. I have worked in game industry since 2008 on MMOs and mobile games, but now I work for Owlcat Games on great old-school RPGs. In my free time, I like to play rock'n'roll on my guitar and travel."},{"@type":"WebSite","@id":"http:\/\/zxstudio.org\/blog\/#website","url":"http:\/\/zxstudio.org\/blog\/","name":"ZX Studio Blog","description":"","publisher":{"@id":"http:\/\/zxstudio.org\/blog\/#\/schema\/person\/0a2cf38b4b9456c20b27bf9837c90b78"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/zxstudio.org\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"ImageObject","@id":"http:\/\/zxstudio.org\/blog\/2014\/01\/24\/qdf-data-file\/#primaryimage","inLanguage":"en-US","url":"http:\/\/zxstudio.org\/blog\/wp-content\/uploads\/2015\/04\/datafile.qdf_.png","contentUrl":"http:\/\/zxstudio.org\/blog\/wp-content\/uploads\/2015\/04\/datafile.qdf_.png","width":716,"height":292},{"@type":"WebPage","@id":"http:\/\/zxstudio.org\/blog\/2014\/01\/24\/qdf-data-file\/#webpage","url":"http:\/\/zxstudio.org\/blog\/2014\/01\/24\/qdf-data-file\/","name":"QDF data file - ZX Studio Blog","isPartOf":{"@id":"http:\/\/zxstudio.org\/blog\/#website"},"primaryImageOfPage":{"@id":"http:\/\/zxstudio.org\/blog\/2014\/01\/24\/qdf-data-file\/#primaryimage"},"datePublished":"2014-01-24T17:16:56+00:00","dateModified":"2015-04-12T17:19:23+00:00","breadcrumb":{"@id":"http:\/\/zxstudio.org\/blog\/2014\/01\/24\/qdf-data-file\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["http:\/\/zxstudio.org\/blog\/2014\/01\/24\/qdf-data-file\/"]}]},{"@type":"BreadcrumbList","@id":"http:\/\/zxstudio.org\/blog\/2014\/01\/24\/qdf-data-file\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u043c\u0435\u043d\u044e","item":"http:\/\/zxstudio.org\/blog\/"},{"@type":"ListItem","position":2,"name":"QDF data file"}]},{"@type":"Article","@id":"http:\/\/zxstudio.org\/blog\/2014\/01\/24\/qdf-data-file\/#article","isPartOf":{"@id":"http:\/\/zxstudio.org\/blog\/2014\/01\/24\/qdf-data-file\/#webpage"},"author":{"@id":"http:\/\/zxstudio.org\/blog\/#\/schema\/person\/f221fca82d9bc01ba45831b70ffc2b61"},"headline":"QDF data file","datePublished":"2014-01-24T17:16:56+00:00","dateModified":"2015-04-12T17:19:23+00:00","mainEntityOfPage":{"@id":"http:\/\/zxstudio.org\/blog\/2014\/01\/24\/qdf-data-file\/#webpage"},"wordCount":91,"commentCount":0,"publisher":{"@id":"http:\/\/zxstudio.org\/blog\/#\/schema\/person\/0a2cf38b4b9456c20b27bf9837c90b78"},"image":{"@id":"http:\/\/zxstudio.org\/blog\/2014\/01\/24\/qdf-data-file\/#primaryimage"},"thumbnailUrl":"http:\/\/zxstudio.org\/blog\/wp-content\/uploads\/2015\/04\/datafile.qdf_.png","keywords":["Open Horizon"],"articleSection":["General"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["http:\/\/zxstudio.org\/blog\/2014\/01\/24\/qdf-data-file\/#respond"]}]},{"@type":"Person","@id":"http:\/\/zxstudio.org\/blog\/#\/schema\/person\/f221fca82d9bc01ba45831b70ffc2b61","name":"Razgriz","url":"http:\/\/zxstudio.org\/blog\/author\/razgriz\/"}]}},"_links":{"self":[{"href":"http:\/\/zxstudio.org\/blog\/wp-json\/wp\/v2\/posts\/118"}],"collection":[{"href":"http:\/\/zxstudio.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/zxstudio.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/zxstudio.org\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/zxstudio.org\/blog\/wp-json\/wp\/v2\/comments?post=118"}],"version-history":[{"count":1,"href":"http:\/\/zxstudio.org\/blog\/wp-json\/wp\/v2\/posts\/118\/revisions"}],"predecessor-version":[{"id":120,"href":"http:\/\/zxstudio.org\/blog\/wp-json\/wp\/v2\/posts\/118\/revisions\/120"}],"wp:attachment":[{"href":"http:\/\/zxstudio.org\/blog\/wp-json\/wp\/v2\/media?parent=118"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/zxstudio.org\/blog\/wp-json\/wp\/v2\/categories?post=118"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/zxstudio.org\/blog\/wp-json\/wp\/v2\/tags?post=118"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}