{"id":64,"date":"2012-07-16T07:21:37","date_gmt":"2012-07-16T07:21:37","guid":{"rendered":"https:\/\/blogs.scummvm.org\/somaen\/?p=64"},"modified":"2022-05-26T07:22:52","modified_gmt":"2022-05-26T07:22:52","slug":"whats-left","status":"publish","type":"post","link":"https:\/\/blogs.scummvm.org\/somaen\/2012\/07\/16\/whats-left\/","title":{"rendered":"What&#8217;s left?"},"content":{"rendered":"<p>I&#8217;m back again, after a week of harvest-work, I&#8217;m now ready to start the second half of GSoC, a big question then, is what&#8217;s left to do?<\/p>\n<ul>\n<li>Volume-settings are currently ignored (well, mute works, but that&#8217;s it)<\/li>\n<li>Videos desynch a bit (I used the video-code from the Sword 2.5-engine, which states this to \u00a0be a known issue)<\/li>\n<li>Only OGG-audio is supported at the moment, while games like &#8220;the white chamber&#8221; also use WAV.<\/li>\n<li>Detection still needs a bit of work:\n<ul>\n<li>Detection is hardcoded for the games I have tested with, and doesn&#8217;t allow for user-games with changing\/unknown MD5&#8217;s.<\/li>\n<li>Detection is set with a common target, and Savegames use hardcoded filenames, thus making ALL WinterMute-games share savegame-namespace. This means that slot 3 in J.U.L.I.A. also is slot 3 in Dirty Split&#8230;<\/li>\n<\/ul>\n<\/li>\n<li>TTF-fonts still need a bit of adjusting:\n<ul>\n<li>TTF-fonts currently lack a decent fallback to theme-fonts (in ANY case text will be drawn, just not with a font that looks at all similar to what was intended when the games were made)<\/li>\n<li>TTF-fonts drew a bit on the dark side (cheap Star Wars-jokes aside, this was because I drew 16bpp for some reason, and then converted that to 32bpp, I have a fix for it now)<\/li>\n<\/ul>\n<\/li>\n<li>Variable renaming:\n<ul>\n<li>There are still the odd variable name here and there that follows either the VarName-naming convention, or the style_where_you_put_in_a_bunch_of_these. I think I got most of the former. And the latter, well it will have to change as well.<\/li>\n<\/ul>\n<\/li>\n<li>Drawing is slow, or as _sev put it:<\/li>\n<\/ul>\n<blockquote class=\"tr_bq\"><p><i>&lt;_sev&gt; i don&#8217;t agree it is slow<br \/>\n<\/i><i>&lt;_sev&gt; it is \u00fcber-slow<\/i><\/p><\/blockquote>\n<p>Well, this is the bit that I talked a bit about last time, sadly I have still not solved the dirty rect-thing (since I haven&#8217;t really been working on GSoC the past week, owing to the mentioned harvest-work). I did go through the blit-function I use right now, and noticed two things:<\/p>\n<p>As fuzzie mentioned back when I originally tried to refactor the blit-code from the Sword25-engine for common usage, I changed the constant shifts to variable shifts (i.e. &#8220;pix &lt;&lt; 24 &amp; 0xff&#8221; became &#8220;pix &lt;&lt; blueShift &amp; 0xff&#8221;), which would disable any compiler-optimizations that could change that to byte-access, instead of a shift, accordingly I also changed the byte-writes to format.colorFromARGB-calls, which add even more shifts. Doing some profiling on thise code revealed that ~30% of the total runtime was spent in this function. Simply changing the shifts back to constant shifts, and the format.colorFromARGB-calls to byte-writes, reduced this to ~19%. Which now makes <i>flip() <\/i>the heaviest part of the entire code (since it does a complete redraw of the frame every frame), counting in at ~57% of the total runtime spent in <i>g_system-&gt;updateScreen()<\/i>. Finishing up dirty rects should reduce that load by quite a bit more.<\/p>\n<p>I did do some minor game testing the past week, as <i>meta <\/i>kindly provided me a retail version of J.U.L.I.A. I was able to play on from the demo, the downside being that I found J.U.L.I.A. to be using sprite rotation, which is not supported in WME Lite, from which I have based this port. This makes it rather unlikely that the full J.U.L.I.A.-version will become completable with this port during GSoC, although, it isn&#8217;t unlikely that I&#8217;ll end up adding in sprite rotation at some future point.<\/p>\n<p>Going forwards, I&#8217;ll try to get the things listed above fixed, and hopefully end up with a reducing my list of TODOs, instead of finding new roadblocks.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;m back again, after a week of harvest-work, I&#8217;m now ready to start the second half of GSoC, a big question then, is what&#8217;s left to do? Volume-settings are currently ignored (well, mute works, but that&#8217;s it) Videos desynch a bit (I used the video-code from the Sword 2.5-engine, which states this to \u00a0be a [&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-64","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blogs.scummvm.org\/somaen\/wp-json\/wp\/v2\/posts\/64","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.scummvm.org\/somaen\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.scummvm.org\/somaen\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.scummvm.org\/somaen\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.scummvm.org\/somaen\/wp-json\/wp\/v2\/comments?post=64"}],"version-history":[{"count":2,"href":"https:\/\/blogs.scummvm.org\/somaen\/wp-json\/wp\/v2\/posts\/64\/revisions"}],"predecessor-version":[{"id":66,"href":"https:\/\/blogs.scummvm.org\/somaen\/wp-json\/wp\/v2\/posts\/64\/revisions\/66"}],"wp:attachment":[{"href":"https:\/\/blogs.scummvm.org\/somaen\/wp-json\/wp\/v2\/media?parent=64"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.scummvm.org\/somaen\/wp-json\/wp\/v2\/categories?post=64"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.scummvm.org\/somaen\/wp-json\/wp\/v2\/tags?post=64"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}