{"id":342,"date":"2012-03-26T11:36:46","date_gmt":"2012-03-26T16:36:46","guid":{"rendered":"http:\/\/snarfblam.com\/words\/?p=342"},"modified":"2018-03-22T18:45:53","modified_gmt":"2018-03-22T23:45:53","slug":"fceux-debug-file-format","status":"publish","type":"post","link":"http:\/\/snarfblam.com\/words\/?p=342","title":{"rendered":"FCEUX Debug File Format"},"content":{"rendered":"<p>Just in case anybody else ever needs to know the format for FCEUX&#8217;s debugger&#8217;s config files (.deb), here it is, based on the source code for version 2.1.5 (found in \\src\\drivers\\win\\pref.cpp) and the contents of actual .deb files.<!--more--><\/p>\n<p>This is not an open or publicly documented format and may be different for different versions. Some of the data types used in the source code may be platform-dependent.<\/p>\n<pre>\/\/ FCEUX 2.1.5 .DEB FILE FORMAT\r\n\r\n\r\n\/\/ int is 32 bits, short is 16 bits, byte is 8 bits.\r\n\/\/ uint = unsigned int\r\n\/\/ ushort = unsigned short\r\n\/\/ uint16 = 16-bit unsigned integer\r\n\/\/ byte = 8-bit integer\r\n\r\n\/\/ Redundant types are a result of information from different sources. \r\n\/\/ I don't know if anything is platform-dependent.\r\n\r\n\/\/ Debugger Window\r\nbyte*           SymbolicDebugEnabled\r\nuint            BookmarkCount\r\nushort[]        Bookmarks\r\n\r\nBreakPoint[65] {\r\n    uint16*         AddressStart\r\n    uint16*         AddressEnd\r\n    byte*           Flags\r\n\r\n    uint            ConditionLen\r\n    char[]          Condition\r\n    uint            DescripLen\r\n    char[]          Descrip\r\n}\r\n\r\n\/\/ Hex Editor Window\r\nint*            HexBookmarkCount\r\nHexBookmark[] {\r\n    uint*           Address\r\n    uint            DescripLen\r\n    char[]          Descrip\r\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Just in case anybody else ever needs to know the format for FCEUX&#8217;s debugger&#8217;s config files (.deb), here it is, based on the source code for version 2.1.5 (found in \\src\\drivers\\win\\pref.cpp) and the contents of actual .deb files.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[31,8,4,18,3],"tags":[26,27,36,35,10,12,46],"class_list":["post-342","post","type-post","status-publish","format-standard","hentry","category-asm-romhacking","category-front-page","category-general","category-programming","category-romhacking","tag-26","tag-asm","tag-debug","tag-fceux","tag-hacking","tag-nes","tag-programming"],"_links":{"self":[{"href":"http:\/\/snarfblam.com\/words\/index.php?rest_route=\/wp\/v2\/posts\/342","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/snarfblam.com\/words\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/snarfblam.com\/words\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/snarfblam.com\/words\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/snarfblam.com\/words\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=342"}],"version-history":[{"count":5,"href":"http:\/\/snarfblam.com\/words\/index.php?rest_route=\/wp\/v2\/posts\/342\/revisions"}],"predecessor-version":[{"id":547,"href":"http:\/\/snarfblam.com\/words\/index.php?rest_route=\/wp\/v2\/posts\/342\/revisions\/547"}],"wp:attachment":[{"href":"http:\/\/snarfblam.com\/words\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=342"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/snarfblam.com\/words\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=342"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/snarfblam.com\/words\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=342"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}