{"id":51,"date":"2009-06-10T18:35:03","date_gmt":"2009-06-10T18:35:03","guid":{"rendered":"https:\/\/blogs.scummvm.org\/upthorn\/?p=51"},"modified":"2022-05-25T18:37:38","modified_gmt":"2022-05-25T18:37:38","slug":"the-vestiges-of-flesh","status":"publish","type":"post","link":"https:\/\/blogs.scummvm.org\/upthorn\/2009\/06\/10\/the-vestiges-of-flesh\/","title":{"rendered":"The vestiges of flesh"},"content":{"rendered":"<p>Well, using the ad-hoc solution I described yesterday, I now have the SDL backend supporting (a very limited set of) pixelformat requests from engine codes.<\/p>\n<p>And I\u2019ve got the Scumm engine module making use of it.<\/p>\n<p>Here\u2019s a \u201cbefore\u201d and \u201cafter\u201d set of the Humongous Interactive Catalog:<\/p>\n<figure id=\"attachment_53\" aria-describedby=\"caption-attachment-53\" style=\"width: 640px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/blogs.scummvm.org\/upthorn\/wp-content\/uploads\/sites\/47\/2009\/06\/catalog_static_555rgb.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-53 size-full\" src=\"https:\/\/blogs.scummvm.org\/upthorn\/wp-content\/uploads\/sites\/47\/2009\/06\/catalog_static_555rgb.png\" alt=\"\" width=\"640\" height=\"480\" srcset=\"https:\/\/blogs.scummvm.org\/upthorn\/wp-content\/uploads\/sites\/47\/2009\/06\/catalog_static_555rgb.png 640w, https:\/\/blogs.scummvm.org\/upthorn\/wp-content\/uploads\/sites\/47\/2009\/06\/catalog_static_555rgb-300x225.png 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><figcaption id=\"caption-attachment-53\" class=\"wp-caption-text\">Catalog, rendered in 555RGB<\/figcaption><\/figure>\n<figure id=\"attachment_54\" aria-describedby=\"caption-attachment-54\" style=\"width: 640px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/blogs.scummvm.org\/upthorn\/wp-content\/uploads\/sites\/47\/2009\/06\/catalog_dynamic_clut8.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-54\" src=\"https:\/\/blogs.scummvm.org\/upthorn\/wp-content\/uploads\/sites\/47\/2009\/06\/catalog_dynamic_clut8.png\" alt=\"\" width=\"640\" height=\"480\" srcset=\"https:\/\/blogs.scummvm.org\/upthorn\/wp-content\/uploads\/sites\/47\/2009\/06\/catalog_dynamic_clut8.png 640w, https:\/\/blogs.scummvm.org\/upthorn\/wp-content\/uploads\/sites\/47\/2009\/06\/catalog_dynamic_clut8-300x225.png 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><figcaption id=\"caption-attachment-54\" class=\"wp-caption-text\">Catalog, rendered in properly paletted CLUT8<\/figcaption><\/figure>\n<p>Incidentally, because I had never actually tried the interactive catalog before having converted the backend to render in 555RGB, I never realized until taking these screenshots that those perfect circles on the left are actually horribly distorted ellipses, and therefore, even though I knew everything was rendering at half width, I somehow expected a result that looked a bit more like this:<\/p>\n<p><a href=\"https:\/\/blogs.scummvm.org\/upthorn\/wp-content\/uploads\/sites\/47\/2009\/06\/catalog_expected.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-55\" src=\"https:\/\/blogs.scummvm.org\/upthorn\/wp-content\/uploads\/sites\/47\/2009\/06\/catalog_expected.png\" alt=\"\" width=\"320\" height=\"480\" srcset=\"https:\/\/blogs.scummvm.org\/upthorn\/wp-content\/uploads\/sites\/47\/2009\/06\/catalog_expected.png 320w, https:\/\/blogs.scummvm.org\/upthorn\/wp-content\/uploads\/sites\/47\/2009\/06\/catalog_expected-200x300.png 200w\" sizes=\"auto, (max-width: 320px) 100vw, 320px\" \/><\/a>And just to prove I haven\u2019t broken 16-bit, here\u2019s a screenshot of freddicove running in 16bit (RGB555) color, on the same build of ScummVM<\/p>\n<figure id=\"attachment_56\" aria-describedby=\"caption-attachment-56\" style=\"width: 640px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/blogs.scummvm.org\/upthorn\/wp-content\/uploads\/sites\/47\/2009\/06\/freddicove_dynamic_555rgb.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-56\" src=\"https:\/\/blogs.scummvm.org\/upthorn\/wp-content\/uploads\/sites\/47\/2009\/06\/freddicove_dynamic_555rgb.png\" alt=\"\" width=\"640\" height=\"480\" srcset=\"https:\/\/blogs.scummvm.org\/upthorn\/wp-content\/uploads\/sites\/47\/2009\/06\/freddicove_dynamic_555rgb.png 640w, https:\/\/blogs.scummvm.org\/upthorn\/wp-content\/uploads\/sites\/47\/2009\/06\/freddicove_dynamic_555rgb-300x225.png 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><figcaption id=\"caption-attachment-56\" class=\"wp-caption-text\">Remember that screenshot back in my first progress update? &#8230;this is what it would look like now.<\/figcaption><\/figure>\n<p>Of course, this is a ad-hoc, temporary solution. It\u2019s not nearly as dirty a hack as my first modification to make the backend render as 16-bit, but still, I strongly doubt that it will be an acceptable final implementation.<\/p>\n<p>Additionally, in its current state, there is absolutely no error checking or sanitizing, and the mouse cursor code is still using the temporary hack I mentioned <a title=\"Good news, everyone\" href=\"https:\/\/blogs.scummvm.org\/upthorn\/2009\/06\/05\/good-news-everyone\/\" target=\"_blank\" rel=\"noopener\">three posts ago<\/a> \u2014 not respecting or even checking the backend state at all.<\/p>\n<p>But it\u2019s still a start, and I\u2019m still proud of it.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Well, using the ad-hoc solution I described yesterday, I now have the SDL backend supporting (a very limited set of) pixelformat requests from engine codes. And I\u2019ve got the Scumm engine module making use of it. Here\u2019s a \u201cbefore\u201d and \u201cafter\u201d set of the Humongous Interactive Catalog: Incidentally, because I had never actually tried the [&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-51","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blogs.scummvm.org\/upthorn\/wp-json\/wp\/v2\/posts\/51","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.scummvm.org\/upthorn\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.scummvm.org\/upthorn\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.scummvm.org\/upthorn\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.scummvm.org\/upthorn\/wp-json\/wp\/v2\/comments?post=51"}],"version-history":[{"count":2,"href":"https:\/\/blogs.scummvm.org\/upthorn\/wp-json\/wp\/v2\/posts\/51\/revisions"}],"predecessor-version":[{"id":57,"href":"https:\/\/blogs.scummvm.org\/upthorn\/wp-json\/wp\/v2\/posts\/51\/revisions\/57"}],"wp:attachment":[{"href":"https:\/\/blogs.scummvm.org\/upthorn\/wp-json\/wp\/v2\/media?parent=51"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.scummvm.org\/upthorn\/wp-json\/wp\/v2\/categories?post=51"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.scummvm.org\/upthorn\/wp-json\/wp\/v2\/tags?post=51"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}