{"id":13,"date":"2010-05-06T23:05:44","date_gmt":"2010-05-06T23:05:44","guid":{"rendered":"https:\/\/blogs.scummvm.org\/pidgeot\/?p=13"},"modified":"2022-05-21T11:26:39","modified_gmt":"2022-05-21T11:26:39","slug":"project-outline","status":"publish","type":"post","link":"https:\/\/blogs.scummvm.org\/pidgeot\/2010\/05\/06\/project-outline\/","title":{"rendered":"Project outline"},"content":{"rendered":"<p>I figure it&#8217;s about time that I post a bit more about what I&#8217;ll be doing.<\/p>\n<p>As I mentioned in my first post, my task is to create a generic script decompiler. That&#8217;s a bit vague, though &#8211; it can&#8217;t magically know how to decompile\u00a0<b>everything<\/b>, and there&#8217;s no way I have time enough to teach it everything.<\/p>\n<p>Instead, I&#8217;ll make it work with two different engines: SCUMMv6 and KYRA. For SCUMMv6, I own Sam &amp; Max, and for KYRA, I have a demo of Hand of Fate, so both of these will come in handy when testing the decompiler.<\/p>\n<p>Why those two engines? Well, apart from being pretty well understood, my mentors are also familiar with these engines. Although I could choose engines that neither of them know anything about, that would be a pretty foolish idea, since it&#8217;d be harder for me to get help if (well, most likely\u00a0<b>when<\/b>) I need it.<\/p>\n<p>The reason for taking two engines is simple: if I only did one engine, it&#8217;d be hard to show that I actually took a generic approach. It&#8217;s the same problem if I just did two different version of an engine &#8211; it might need to be a bit more generic in order to allow for both versions, but it doesn&#8217;t say anything about whether the approach will easily extend to other engines.<\/p>\n<p>So now that we know what the end goal is, let&#8217;s talk about how we&#8217;re going to get there. I&#8217;ve prepared a schedule, and here are the primary points on it:<\/p>\n<ul>\n<li>June 1: Disassembly framework<\/li>\n<li>June 8: First disassembler (SCUMMv6)<\/li>\n<li>June 21: Generation of code flow graph<\/li>\n<li>June 28: Code flow analysis<\/li>\n<li>July 24: Code generation (SCUMMv6)<\/li>\n<li>July 29: Second disassembler (KYRA)<\/li>\n<li>August 6: Code generation (KYRA)<\/li>\n<\/ul>\n<p>Of course, these dates are just estimates, and there are other subtasks on the schedule &#8211; I&#8217;ve just omitted them to create this overview.<\/p>\n<p>So there you have it &#8211; a brief overview of my project. In later posts, I&#8217;m going to cover these steps in more detail.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I figure it&#8217;s about time that I post a bit more about what I&#8217;ll be doing. As I mentioned in my first post, my task is to create a generic script decompiler. That&#8217;s a bit vague, though &#8211; it can&#8217;t magically know how to decompile\u00a0everything, and there&#8217;s no way I have time enough to teach [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-13","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blogs.scummvm.org\/pidgeot\/wp-json\/wp\/v2\/posts\/13","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.scummvm.org\/pidgeot\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.scummvm.org\/pidgeot\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.scummvm.org\/pidgeot\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.scummvm.org\/pidgeot\/wp-json\/wp\/v2\/comments?post=13"}],"version-history":[{"count":1,"href":"https:\/\/blogs.scummvm.org\/pidgeot\/wp-json\/wp\/v2\/posts\/13\/revisions"}],"predecessor-version":[{"id":14,"href":"https:\/\/blogs.scummvm.org\/pidgeot\/wp-json\/wp\/v2\/posts\/13\/revisions\/14"}],"wp:attachment":[{"href":"https:\/\/blogs.scummvm.org\/pidgeot\/wp-json\/wp\/v2\/media?parent=13"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.scummvm.org\/pidgeot\/wp-json\/wp\/v2\/categories?post=13"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.scummvm.org\/pidgeot\/wp-json\/wp\/v2\/tags?post=13"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}