{"id":49,"date":"2019-08-02T09:55:57","date_gmt":"2019-08-02T09:55:57","guid":{"rendered":"https:\/\/blogs.scummvm.org\/nipungarg\/?p=49"},"modified":"2022-05-22T09:56:09","modified_gmt":"2022-05-22T09:56:09","slug":"gsoc-update-week-10","status":"publish","type":"post","link":"https:\/\/blogs.scummvm.org\/nipungarg\/2019\/08\/02\/gsoc-update-week-10\/","title":{"rendered":"GSOC Update: Week 10"},"content":{"rendered":"<div class=\"entry\">\n<p>My university has finally openned for a new term, so it has been a hective schedule. Nevertheless, I have managed to get in a decent amount of work this week.<\/p>\n<h3 id=\"current-problems\">Current Problems<\/h3>\n<p>The current build for the PPC version is crashing and I suspect it is crashing because of the Windows-only code that is executed by default. Hence, my immediate objective is to section off the Windows-only code. If that still doesn\u2019t work, I suppose I\u2019ll have to find the cause of the crash through the debugger.<\/p>\n<p>A few levels remain to playtest. The problem isn\u2019t that they\u2019re bugging, but that I haven\u2019t figured out yet how to beat them! A number of the puzzles near the end of the game are greatly challenging.<\/p>\n<h3 id=\"accomplishments\">Accomplishments<\/h3>\n<ol>\n<li>Fixed the AudioStream Bug<\/li>\n<li>Added support to FileMan for reading MSD files<\/li>\n<li>Added support for compressed game files<\/li>\n<li>Sectioned-off PPC-exclusive code<\/li>\n<li>Converted Platform-specific Constants from enums into variables<\/li>\n<\/ol>\n<p>In my previous post, I had described a bug with the <code class=\"language-plaintext highlighter-rouge\">AudioStream<\/code> code. The AudioStream was getting deallocated after playing, regardless of whether I created the stream with <code class=\"language-plaintext highlighter-rouge\">DisposeAfterUse::YES<\/code> or <code class=\"language-plaintext highlighter-rouge\">DisposeAfterUse::NO<\/code>. The problem was deceptively simple. The <code class=\"language-plaintext highlighter-rouge\">playStream()<\/code> function has a DisposeAfterUse condition of its own for some reason, which is independent of the DisposeAfterUse condition of the stream that is being played. Moreover, it is set to DisposeAfterUse::YES as a default parameter, so if you\u2019re not paying attention to those, you could end up using it by accident.<\/p>\n<p>This is what I was doing wrong. The deletion was carried out through a callback (an SDL callback in my case) which made it difficult to find when debugging the Main Thread with the debugger. Setting DisposeAfterUse to NO in the playStream function fixed the problem.<\/p>\n<p>Thanks to Eugene(sev) for help with the Windows Demo, adding the Platform code for PPC and improving the rendering pipeline and fade-in code.<\/p>\n<h3 id=\"objectives\">Objectives<\/h3>\n<ol>\n<li>Complete adding support for the PPC version<\/li>\n<li>Implement <code class=\"language-plaintext highlighter-rouge\">syncSoundSettings<\/code><\/li>\n<li>Add support for the Linux versions<\/li>\n<li>Ensure that the PPC and Linux demos are working<\/li>\n<\/ol>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>My university has finally openned for a new term, so it has been a hective schedule. Nevertheless, I have managed to get in a decent amount of work this week. Current Problems The current build for the PPC version is crashing and I suspect it is crashing because of the Windows-only code that is executed [&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-49","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blogs.scummvm.org\/nipungarg\/wp-json\/wp\/v2\/posts\/49","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.scummvm.org\/nipungarg\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.scummvm.org\/nipungarg\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.scummvm.org\/nipungarg\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.scummvm.org\/nipungarg\/wp-json\/wp\/v2\/comments?post=49"}],"version-history":[{"count":2,"href":"https:\/\/blogs.scummvm.org\/nipungarg\/wp-json\/wp\/v2\/posts\/49\/revisions"}],"predecessor-version":[{"id":51,"href":"https:\/\/blogs.scummvm.org\/nipungarg\/wp-json\/wp\/v2\/posts\/49\/revisions\/51"}],"wp:attachment":[{"href":"https:\/\/blogs.scummvm.org\/nipungarg\/wp-json\/wp\/v2\/media?parent=49"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.scummvm.org\/nipungarg\/wp-json\/wp\/v2\/categories?post=49"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.scummvm.org\/nipungarg\/wp-json\/wp\/v2\/tags?post=49"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}