{"id":38,"date":"2010-07-05T16:43:49","date_gmt":"2010-07-05T16:43:49","guid":{"rendered":"https:\/\/blogs.scummvm.org\/pidgeot\/?p=38"},"modified":"2022-05-21T11:46:46","modified_gmt":"2022-05-21T11:46:46","slug":"cfg-analysis-complete","status":"publish","type":"post","link":"https:\/\/blogs.scummvm.org\/pidgeot\/2010\/07\/05\/cfg-analysis-complete\/","title":{"rendered":"CFG analysis complete!"},"content":{"rendered":"<p>And with that, the CFG analysis is now completed and documented, completing the fourth milestone. There are still a couple of things that could be improved upon, but they are not applicable to SCUMM, so I&#8217;ll leave those things alone for now and then I can get back to them if KYRA needs them (or if time permits later in the project).<\/p>\n<p>Here&#8217;s an example of a script with all of the analysis complete:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone\" src=\"https:\/\/blogs.scummvm.org\/pidgeot\/wp-content\/uploads\/sites\/32\/2022\/05\/script-30.png\" alt=\"Code flow graph of samnmax\/script-30.dmp\" width=\"1683\" height=\"2320\" \/><\/p>\n<p>It may seem a little messy, but I&#8217;ve verified it, and the analysis gives the expected results for everything.<\/p>\n<p>The next milestone is code generation for SCUMMv6 &#8211; so each of these boxes must be converted to a piece of code. Once that milestone is complete, the decompiler should be able to fully decompile all SCUMMv6 scripts.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>And with that, the CFG analysis is now completed and documented, completing the fourth milestone. There are still a couple of things that could be improved upon, but they are not applicable to SCUMM, so I&#8217;ll leave those things alone for now and then I can get back to them if KYRA needs them (or [&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-38","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blogs.scummvm.org\/pidgeot\/wp-json\/wp\/v2\/posts\/38","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=38"}],"version-history":[{"count":1,"href":"https:\/\/blogs.scummvm.org\/pidgeot\/wp-json\/wp\/v2\/posts\/38\/revisions"}],"predecessor-version":[{"id":39,"href":"https:\/\/blogs.scummvm.org\/pidgeot\/wp-json\/wp\/v2\/posts\/38\/revisions\/39"}],"wp:attachment":[{"href":"https:\/\/blogs.scummvm.org\/pidgeot\/wp-json\/wp\/v2\/media?parent=38"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.scummvm.org\/pidgeot\/wp-json\/wp\/v2\/categories?post=38"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.scummvm.org\/pidgeot\/wp-json\/wp\/v2\/tags?post=38"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}