{"id":125,"date":"2019-08-25T19:49:21","date_gmt":"2019-08-25T19:49:21","guid":{"rendered":"https:\/\/blogs.scummvm.org\/pantherengine\/?p=125"},"modified":"2022-05-23T19:49:49","modified_gmt":"2022-05-23T19:49:49","slug":"gsoc-2019-summary","status":"publish","type":"post","link":"https:\/\/blogs.scummvm.org\/pantherengine\/2019\/08\/25\/gsoc-2019-summary\/","title":{"rendered":"GSOC 2019 Summary"},"content":{"rendered":"<h1>Project description<\/h1>\n<p>During GSoC 2019, I was working on adding support\u00a0for original versions of Red Comrades 1: Save The Galaxy (1998) and Red Comrades 2 : For the Great Justice (1999) games developed by S.K.I.F.<\/p>\n<p>&nbsp;<\/p>\n<h1>Goals achieved<\/h1>\n<h2>Red Comrades Engine:<\/h2>\n<p><a href=\"https:\/\/github.com\/scummvm\/scummvm\/pull\/1823\">Pull Request<\/a><\/p>\n<p><a href=\"https:\/\/github.com\/whiterandrek\/scummvm\/tree\/petka\">Engine branch<\/a><\/p>\n<p>Red Comrades Demo is fully supported.<\/p>\n<p>Red Comrades 1: Save The Galaxy (1998) and Red Comrades 2 : For the Great Justice (1999) are runnable, but are bugged due to no implementation of walking system.<\/p>\n<p>During reversing I have encountered problem with walking system, because it is very large and complex. It uses more than 30 functions. For comparison, the dialog bytecode interpreter uses only 17 functions.<\/p>\n<h3>Advantages over original engine:<\/h3>\n<ul>\n<li>Low CPU usage. The original engine doesn\u2019t have delay after each frame despite the fact that dirty rectangles are implemented in it.<\/li>\n<li>All advantages which ScummVm offers(scaling, cross-platform, etc)<\/li>\n<\/ul>\n<h2>ScummVM\u2019s library:<\/h2>\n<p>During GSOC I have improved INI reader class in ScummVM.<\/p>\n<ul>\n<li class=\"gh-header-title\">\n<p class=\"gh-header-title\"><span class=\"js-issue-title\"><a href=\"https:\/\/github.com\/scummvm\/scummvm\/pull\/1812\">COMMON: added support for reading ini files with different 8bit encodings<\/a><\/span><\/p>\n<\/li>\n<li class=\"gh-header-title\">\n<p class=\"gh-header-title\"><span class=\"js-issue-title\"><a href=\"https:\/\/github.com\/scummvm\/scummvm\/pull\/1814\">COMMON: fixed reading ini files which have not value for key\u00a0<\/a><\/span><\/p>\n<\/li>\n<li class=\"gh-header-title\">\n<p class=\"gh-header-title\"><span class=\"js-issue-title\"><a href=\"https:\/\/github.com\/scummvm\/scummvm\/pull\/1580\">COMMON: fixed reading ini files with section containing more than one word<\/a><\/span><\/p>\n<\/li>\n<\/ul>\n<h1>Future work<\/h1>\n<ul>\n<li>Make games fully playable<\/li>\n<li>Maintain Red Comrades engine during its testing period<\/li>\n<li>Add another engine to ScummVM<\/li>\n<\/ul>\n<h1>Code<\/h1>\n<p>The code for Red Comrades Engine is in the repo:<\/p>\n<p><a href=\"https:\/\/github.com\/whiterandrek\/scummvm\/tree\/petka\">Engine branch<\/a><\/p>\n<p>The commits that I made:<\/p>\n<p><a href=\"https:\/\/github.com\/whiterandrek\/scummvm\/commits\/petka\">Commits<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Project description During GSoC 2019, I was working on adding support\u00a0for original versions of Red Comrades 1: Save The Galaxy (1998) and Red Comrades 2 : For the Great Justice (1999) games developed by S.K.I.F. &nbsp; Goals achieved Red Comrades Engine: Pull Request Engine branch Red Comrades Demo is fully supported. Red Comrades 1: Save [&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-125","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blogs.scummvm.org\/pantherengine\/wp-json\/wp\/v2\/posts\/125","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.scummvm.org\/pantherengine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.scummvm.org\/pantherengine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.scummvm.org\/pantherengine\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.scummvm.org\/pantherengine\/wp-json\/wp\/v2\/comments?post=125"}],"version-history":[{"count":1,"href":"https:\/\/blogs.scummvm.org\/pantherengine\/wp-json\/wp\/v2\/posts\/125\/revisions"}],"predecessor-version":[{"id":126,"href":"https:\/\/blogs.scummvm.org\/pantherengine\/wp-json\/wp\/v2\/posts\/125\/revisions\/126"}],"wp:attachment":[{"href":"https:\/\/blogs.scummvm.org\/pantherengine\/wp-json\/wp\/v2\/media?parent=125"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.scummvm.org\/pantherengine\/wp-json\/wp\/v2\/categories?post=125"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.scummvm.org\/pantherengine\/wp-json\/wp\/v2\/tags?post=125"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}