{"id":53,"date":"2026-07-14T08:14:53","date_gmt":"2026-07-14T08:14:53","guid":{"rendered":"https:\/\/blogs.scummvm.org\/priyanshu\/?p=53"},"modified":"2026-07-14T08:16:53","modified_gmt":"2026-07-14T08:16:53","slug":"week-8","status":"publish","type":"post","link":"https:\/\/blogs.scummvm.org\/priyanshu\/2026\/07\/14\/week-8\/","title":{"rendered":"Week 8"},"content":{"rendered":"<p>We are past the mid-term now which means half of the GSoC season has come to an end and we have started on the second half. I overlayed the &#8220;Options&#8221; icon and the &#8220;Help&#8221; icon.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-54\" src=\"https:\/\/blogs.scummvm.org\/priyanshu\/wp-content\/uploads\/sites\/85\/2026\/07\/Screenshot-from-2026-07-14-13-27-25-300x235.png\" alt=\"\" width=\"300\" height=\"235\" srcset=\"https:\/\/blogs.scummvm.org\/priyanshu\/wp-content\/uploads\/sites\/85\/2026\/07\/Screenshot-from-2026-07-14-13-27-25-300x235.png 300w, https:\/\/blogs.scummvm.org\/priyanshu\/wp-content\/uploads\/sites\/85\/2026\/07\/Screenshot-from-2026-07-14-13-27-25-768x603.png 768w, https:\/\/blogs.scummvm.org\/priyanshu\/wp-content\/uploads\/sites\/85\/2026\/07\/Screenshot-from-2026-07-14-13-27-25.png 956w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>The wrench is for the &#8220;Options&#8221; that&#8217;s essentially the control panel and the help icon is for the hint system. It has a bunch of questions depending upon the part of the game we are in and a few hints for that question.<\/p>\n<p>For an example &#8211;<\/p>\n<p>Q &#8211; The Firedoor is locked \u2013 how do I open it?<\/p>\n<p>A &#8211; Get the rung from the top of the stairs on the left of the gantry.<\/p>\n<p>Open your inventory and use the rung on the fire door to lever it open.<\/p>\n<p>The original source code uses a huge switch block to map the questions to the answers. I will be taking the same approach when I implement the text in ScummVM.<\/p>\n<p>So, we load the help window and render the text on it.<\/p>\n<p>But another challenge comes just at that point. The game assets are not standard PNG files but rather, a non standard variation of the PNG format optimized by Apple for iOS devices. It is called the CgBI format.<\/p>\n<p>Since we depend upon libpng to decode our PNG files, CgBI files cannot be decoded since libpng doesn&#8217;t support them. To tackle this issue, we have decided to write a CgBI to standard PNG converter. We already have a program to do that which was shared by my mentor, @DJWillis.<\/p>\n<p>I am currently studying it to understand how it&#8217;s doing it since I have a very limited experience in decoding.<\/p>\n<p>Once I understand it, I will port it to ScummVM in the image\/ directory where all the other image format decoders live, so that it can also be used in the future for any other games if needed.<\/p>\n<p>After we have the decoder and we load the empty help window, we will proceed with adding the text.<\/p>\n<p>Thanks for reading \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We are past the mid-term now which means half of the GSoC season has come to an end and we have started on the second half. I overlayed the &#8220;Options&#8221; icon and the &#8220;Help&#8221; icon. The wrench is for the &#8220;Options&#8221; that&#8217;s essentially the control panel and the help icon is for the hint system. [&hellip;]<\/p>\n","protected":false},"author":33,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-53","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blogs.scummvm.org\/priyanshu\/wp-json\/wp\/v2\/posts\/53","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.scummvm.org\/priyanshu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.scummvm.org\/priyanshu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.scummvm.org\/priyanshu\/wp-json\/wp\/v2\/users\/33"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.scummvm.org\/priyanshu\/wp-json\/wp\/v2\/comments?post=53"}],"version-history":[{"count":3,"href":"https:\/\/blogs.scummvm.org\/priyanshu\/wp-json\/wp\/v2\/posts\/53\/revisions"}],"predecessor-version":[{"id":57,"href":"https:\/\/blogs.scummvm.org\/priyanshu\/wp-json\/wp\/v2\/posts\/53\/revisions\/57"}],"wp:attachment":[{"href":"https:\/\/blogs.scummvm.org\/priyanshu\/wp-json\/wp\/v2\/media?parent=53"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.scummvm.org\/priyanshu\/wp-json\/wp\/v2\/categories?post=53"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.scummvm.org\/priyanshu\/wp-json\/wp\/v2\/tags?post=53"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}