{"id":110,"date":"2018-06-29T10:55:28","date_gmt":"2018-06-29T10:55:28","guid":{"rendered":"https:\/\/blogs.scummvm.org\/drenn1\/?p=110"},"modified":"2022-05-24T10:59:28","modified_gmt":"2022-05-24T10:59:28","slug":"gsoc-week-6-harcourt-fenton-mudd-have-you-been-drinking-again","status":"publish","type":"post","link":"https:\/\/blogs.scummvm.org\/drenn1\/2018\/06\/29\/gsoc-week-6-harcourt-fenton-mudd-have-you-been-drinking-again\/","title":{"rendered":"GSoC Week 6: Harcourt Fenton Mudd, have you been drinking again?"},"content":{"rendered":"<p>Mission 4: \u201cLove\u2019s Labor Jeopardized\u201d, is an odd one. You don\u2019t really need to do very much to complete the mission; most of the challenge comes from getting the maximum number of points possible by discovering as much as you can about an alien ship.<\/p>\n<p>There is only one way to die, which involves waiting for 25 minutes with plenty of warnings, and there aren\u2019t even any redshirt deaths! Lt. Buchert must be the luckiest security officer in the crew.<\/p>\n<div>\n<figure class=\"image\"><img decoding=\"async\" src=\"..\/images\/gsoc-week-6-luckiest-redshirt.png\" alt=\"\" \/><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/blogs.scummvm.org\/drenn1\/wp-content\/uploads\/sites\/62\/2022\/05\/gsoc-week-6-luckiest-redshirt.png\" \/><figcaption><\/figcaption><\/figure>\n<\/div>\n<p>Though, he has to deal with Harry Mudd, so I guess he breaks even. Honestly, the best part about this mission is talking to the crewmembers and getting their reactions to Mudd.<\/p>\n<div>\n<figure class=\"image\"><img decoding=\"async\" src=\"..\/images\/gsoc-week-6-divine-punishment.png\" alt=\"\" \/><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/blogs.scummvm.org\/drenn1\/wp-content\/uploads\/sites\/62\/2022\/05\/gsoc-week-6-divine-punishment.png\" \/><figcaption><\/figcaption><\/figure>\n<\/div>\n<h2 id=\"mission-oddities\">Mission oddities<\/h2>\n<p>This mission follows familiar patterns; there are pieces of unused audio, despite clearly having places to fit in. For instance, there was an instance where McCoy and the redshirt had the same line, but the redshirt played McCoy\u2019s voice clip when his textbox came up. That was easily fixed, since his voice clip still exists in the game data.<\/p>\n<p>I also encountered invalid actions, which was a first. For example, there was an action defined for \u201cusing a viewscreen on Kirk\u201d. Obviously, that\u2019s supposed to go the other way.<\/p>\n<p>What\u2019s great is that, if the text exists, it\u2019s voice-acted. They were thorough with that, even if the text was unused for one reason or another.<\/p>\n<p>Aside from that, there is one very, very, very obvious bug in this mission. Basically, Mudd goes completely insane after inhaling some alien aromas, and you\u2019re supposed to help him out. (Or you can leave him as-is.)<\/p>\n<p>However, you can just go straight back to the first room, and he\u2019ll still be there, cheerfully bantering with the crew as if nothing happened. Then you can go back to the previous room, and he\u2019s insane again.<\/p>\n<p>I\u2019m still finishing up the mission, but I\u2019ll be sure this gets fixed in ScummVM.<\/p>\n<h2 id=\"a-detour-into-mac-os-8\">A detour into Mac OS 8<\/h2>\n<p>Earlier this week, I took a quick break from mission logic to take a look at the Mac port. Since I was convinced at that point that the mission logic was hand-written assembly, I wanted to see what they did with the different processor architectures.<\/p>\n<p>I spent two days trying to read from almost-dead floppy disks, searching for obscure unmaintained programs to read from a file\u2019s so called \u201cresource fork\u201d (a feature of the mac filesystem), figuring out how to use Mac OS 8, and looking for an appropriate emulator to run it. (The program is called Sheepsaver, it\u2019s pretty swell.)<\/p>\n<div>\n<figure class=\"image\"><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/blogs.scummvm.org\/drenn1\/wp-content\/uploads\/sites\/62\/2022\/05\/gsoc-week-6-mac-os.png\" \/><figcaption>This was what my Monday evening looked like.<\/figcaption><\/figure>\n<\/div>\n<p>And, what did I find when I finally dumped the files? x86 assembly in the mission logic. Now, I haven\u2019t done any serious reverse-engineering on the main executable file, but since the Macs of that day ran on 68k processors, it\u2019s quite obvious that emulation was going on.<\/p>\n<p>The Amiga was apparently based on the 68k processor as well, so, perhaps this is related to the complaints of sluggishness in the Amiga port that I\u2019ve heard about. That being said, mission logic would take only a very small fraction of the total execution time, so perhaps there are other reasons for the sluggishness. Or perhaps even parts of the engine code are emulated as well. That\u2019s just speculation, though.<\/p>\n<p>A fun side-note: I was running Mac OS 8 when installing this version, which ran on PowerPCs. So, my x86 computer was emulating a PowerPC for MacOS, emulating a 68k for Star Trek, emulating an x86 for the mission logic. Ahh, the circle of life is beautiful.<\/p>\n<h2 id=\"ps\">PS<\/h2>\n<p>I was mentioned on\u00a0<a href=\"https:\/\/blog.github.com\/2018-06-25-preserving-and-playing-classic-point-and-click-adventure-games-with-scummvm\/\">Github\u2019s blog<\/a>\u00a0in a feature on ScummVM! It\u2019s great to know that people are paying attention. It motivates me to make these posts as interesting as possible.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mission 4: \u201cLove\u2019s Labor Jeopardized\u201d, is an odd one. You don\u2019t really need to do very much to complete the mission; most of the challenge comes from getting the maximum number of points possible by discovering as much as you can about an alien ship. There is only one way to die, which involves waiting [&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-110","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blogs.scummvm.org\/drenn1\/wp-json\/wp\/v2\/posts\/110","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.scummvm.org\/drenn1\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.scummvm.org\/drenn1\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.scummvm.org\/drenn1\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.scummvm.org\/drenn1\/wp-json\/wp\/v2\/comments?post=110"}],"version-history":[{"count":1,"href":"https:\/\/blogs.scummvm.org\/drenn1\/wp-json\/wp\/v2\/posts\/110\/revisions"}],"predecessor-version":[{"id":111,"href":"https:\/\/blogs.scummvm.org\/drenn1\/wp-json\/wp\/v2\/posts\/110\/revisions\/111"}],"wp:attachment":[{"href":"https:\/\/blogs.scummvm.org\/drenn1\/wp-json\/wp\/v2\/media?parent=110"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.scummvm.org\/drenn1\/wp-json\/wp\/v2\/categories?post=110"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.scummvm.org\/drenn1\/wp-json\/wp\/v2\/tags?post=110"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}