{"id":47,"date":"2026-07-08T04:38:44","date_gmt":"2026-07-08T04:38:44","guid":{"rendered":"https:\/\/blogs.scummvm.org\/priyanshu\/?p=47"},"modified":"2026-07-08T04:38:44","modified_gmt":"2026-07-08T04:38:44","slug":"week-7","status":"publish","type":"post","link":"https:\/\/blogs.scummvm.org\/priyanshu\/2026\/07\/08\/week-7\/","title":{"rendered":"Week 7"},"content":{"rendered":"<p>Welcome back, happy to be writing back after so long. I&#8217;ve got myself on the work again and there&#8217;s 2-3 days of progress I want to brief about. But before that, I must inform that the initial PR for iBASS support has been merged(it was merged while I was away), which means that now you can play iBASS on the debug builds. All you need to arrange are the game files. Continuing the efforts of porting, I implemented the text chooser(the PR is currently opened). But first let&#8217;s understand what exactly is the text chooser.<\/p>\n<h3>Text Chooser<\/h3>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-50\" src=\"https:\/\/blogs.scummvm.org\/priyanshu\/wp-content\/uploads\/sites\/85\/2026\/07\/Screenshot-from-2026-07-08-09-44-51-300x231.png\" alt=\"\" width=\"300\" height=\"231\" srcset=\"https:\/\/blogs.scummvm.org\/priyanshu\/wp-content\/uploads\/sites\/85\/2026\/07\/Screenshot-from-2026-07-08-09-44-51-300x231.png 300w, https:\/\/blogs.scummvm.org\/priyanshu\/wp-content\/uploads\/sites\/85\/2026\/07\/Screenshot-from-2026-07-08-09-44-51-768x593.png 768w, https:\/\/blogs.scummvm.org\/priyanshu\/wp-content\/uploads\/sites\/85\/2026\/07\/Screenshot-from-2026-07-08-09-44-51.png 959w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/>See the questions at the top. When we talk to the NPCs, a list of questions in this form appears. We have to select a dialogue from this list.<\/p>\n<div style=\"width: 580px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-47-1\" width=\"580\" height=\"448\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/webm\" src=\"https:\/\/blogs.scummvm.org\/priyanshu\/wp-content\/uploads\/sites\/85\/2026\/07\/Screencast-from-2026-07-08-09-52-02.webm?_=1\" \/><a href=\"https:\/\/blogs.scummvm.org\/priyanshu\/wp-content\/uploads\/sites\/85\/2026\/07\/Screencast-from-2026-07-08-09-52-02.webm\">https:\/\/blogs.scummvm.org\/priyanshu\/wp-content\/uploads\/sites\/85\/2026\/07\/Screencast-from-2026-07-08-09-52-02.webm<\/a><\/video><\/div>\n<p>This is how it works.<\/p>\n<p>The PR is currently opened. Once it gets merged, you&#8217;ll be able to use this feature.<\/p>\n<h3>The silent killer<\/h3>\n<p>Day before yesterday, while I was implementing the text chooser, the game crashed on starting. I was lucky that I had run that time with gdb so I recorded the backtrace-<\/p>\n<p>Thread 1 &#8220;scummvm&#8221; received signal SIGSEGV, Segmentation fault.<br \/>\n0x000055555924128a in READ_UINT16 (ptr=0x55555ed36000) at .\/common\/endian.h:209<br \/>\n209 return ((const Unaligned16 *)ptr)-&gt;val;<br \/>\n(gdb) bt<br \/>\n#0 0x000055555924128a in READ_UINT16 (ptr=0x55555ed36000)<br \/>\nat .\/common\/endian.h:209<br \/>\n#1 Sky::Disk::getFileInfo (this=0x55555e4a7640, fileNr=60600)<br \/>\nat engines\/sky\/disk.cpp:310<br \/>\n#2 0x0000555559240c60 in Sky::Disk::fileExists<br \/>\n(this=0x55555e4a7640, fileNr=60600) at engines\/sky\/disk.cpp:169<br \/>\n#3 0x000055555922e5c6 in Sky::SkyEngine::init (this=0x55555e48dec0)<br \/>\nat engines\/sky\/sky.cpp:462<br \/>\n#4 0x000055555922f0f1 in Sky::SkyEngine::run (this=0x55555e48dec0)<br \/>\nat .\/engines\/sky\/sky.h:130<br \/>\n#5 0x00005555560e808c in runGame<br \/>\n(enginePlugin=0x55555d3d2f60, system=&#8230;, game=&#8230;, meDescriptor=0x0)<br \/>\nat base\/main.cpp:328<br \/>\n#6 0x00005555560ea70d in scummvm_main (argc=1, argv=0x7fffffffde28)<br \/>\nat base\/main.cpp:840<br \/>\n#7 0x00005555560e4d84 in main (argc=1, argv=0x7fffffffde28)<br \/>\nat backends\/platform\/sdl\/posix\/posix-main.cpp:56<\/p>\n<p>the getFileInfo function reads from a variable named <a href=\"https:\/\/github.com\/scummvm\/scummvm\/blob\/50533570a1cffe159cdf03e4cb72d311baf825bd\/engines\/sky\/disk.cpp#L83\">_dinnerTableArea<\/a> that is never written to in iBASS since iBASS doesn&#8217;t have a separate sky.dnr file.<\/p>\n<p>So, the game starts successfully most of the time because it contains garbage. If it doesn&#8217;t, the game crashes. To fix this, I used the <a href=\"https:\/\/github.com\/scummvm\/scummvm\/blob\/50533570a1cffe159cdf03e4cb72d311baf825bd\/engines\/sky\/disk.cpp#L172\">getEntry()<\/a> method.<\/p>\n<p>That&#8217;s all for this blog. See in the next post.<\/p>\n<p>Thanks for reading \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Welcome back, happy to be writing back after so long. I&#8217;ve got myself on the work again and there&#8217;s 2-3 days of progress I want to brief about. But before that, I must inform that the initial PR for iBASS support has been merged(it was merged while I was away), which means that now you [&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-47","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blogs.scummvm.org\/priyanshu\/wp-json\/wp\/v2\/posts\/47","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=47"}],"version-history":[{"count":2,"href":"https:\/\/blogs.scummvm.org\/priyanshu\/wp-json\/wp\/v2\/posts\/47\/revisions"}],"predecessor-version":[{"id":52,"href":"https:\/\/blogs.scummvm.org\/priyanshu\/wp-json\/wp\/v2\/posts\/47\/revisions\/52"}],"wp:attachment":[{"href":"https:\/\/blogs.scummvm.org\/priyanshu\/wp-json\/wp\/v2\/media?parent=47"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.scummvm.org\/priyanshu\/wp-json\/wp\/v2\/categories?post=47"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.scummvm.org\/priyanshu\/wp-json\/wp\/v2\/tags?post=47"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}