Over the past several years, I have been an ardent collector of boxed copies of Sierra computer games, particularly those from the Quest for Glory series. In the past year I finally managed to add an elusive gem to my QFG collection: クエスト フォー グローリィ, the Japanese version of Quest for Glory I (EGA).
I now have a physical copy, but the disks are 5.25" and are intended for a PC-98 computer. Even if this was intended for a standard IBM clone, I would not have a way to read the disks. I think the last time I used a computer with 5.25" drives was back in the late 90s, and even then, those were older computers running Windows 3.1. Fortunately, the internet is obliging in providing alternative methods in preserving old software, even if the original medium has become antiquated. The next trick was to figure out how to play this game on (slightly) more modern computers.
Emulating a PC-98 Computer
While I had not seen anyone play this version of Quest for Glory before, I had seen people stream the Japanese version of Police Quest II, so this indicated that it was possible to play PC-98 games on modern hardware, but this was an entirely new realm for me. My initial research pulled up a couple of articles and blog posts.
On my MacBook Pro, I first tried setting up np2sdl2 (version 0.86), one of the Neko Project II emulators, but it kept crashing when I launched it. I was a little too hopeful that things would "just work". I then started looking at the included file はじめにお読みください.txt, which is in Japanese, so it was difficult for me to parse out the instructions, but a couple of words were in English, such as BIOS.ROM, FONT.ROM, and https://www.libsdl.org/download-2.0.php. Going to the SDL link briefly showed a message that the webpage had been moved to GitHub, which at the time of this writing redirects to https://github.com/libsdl-org/SDL/releases/tag/release-2.26.2. This was one initial clue to why the app was crashing. I inspected the crash log, and it indicated that I needed to install the SDL2 library first. I then downloaded SDL2-2.26.2.dmg and installed those libraries. Now np2sdl2 no longer crashed. It started up, made a beep, checked its RAM...then showed a blank screen. I then placed the BIOS.ROM and FONT.ROM files in the same folder as the np2sdl2.app, but starting the app still resulted in a black screen. Any details to configure and troubleshoot are sparse, especially for the Mac version, which doesn't seem to be very well supported, but this is marginally better than Neko Project 21/W which doesn't even have a Mac version.
If I launch np2sdl2 from the command line (np2sdl2.app/Contents/MacOS/np2sdl2), it prints out twice "Device not found", but it does get to an actual screen, first asking how many devices, and a menu along the bottom. After setting the HDD to point to the disk image of the game, Quest for Glory I finally booted in Neko Project II.
After struggling with trying to get np2sdls2 to work, I tried another approach. The most straightforward solution I found was an old PowerPC application called "NP2 Carbon", even though the About Screen says "Neko Project II ver. 0.81a (Carbon)".
I tried this Carbon-based application on my PowerBook G4, and it was more promising than my first experiments with np2sdl2. Once I added FONT.ROM and BIOS.ROM into the same folder as the NP2 Carbon app, it booted up. This program uses a proper Mac menu bar, not some weird Windows 9X-looking interface inside of the window like np2sdl2 does. The audio was somewhat tinny on my PowerBook G4 (more on this in the Sounds section), but serviceable. The sound was somewhat off-putting, and I wasn't sure if I wanted to play through the entire game on the old Mac, but it's a nice option that PC-98 games can still be played on older Macs.
One shortcoming I noticed with both of these Neko Project II emulators is that neither one could go into Full Screen mode. On the PowerBook, the default window size wasn't too bad (since the screen resolution of the 2003 PowerBook was still years away from what Retina displays would provide), but the windowed screen on a MacBook Pro was not very enjoyable to squint at.
Another option I came across was to use DOSBox-X (not to be confused with the regular version of DOSBox), which does have PC-98 emulation. However, I encountered some snags here, as well, as the application could not find the dosbox.conf file. Unlike DOSBox, which has a preferences file in the standard ~/Library/Preferences folder on a Mac, DOSBox-X doesn't seem to have a corresponding preferences file. After reading up about this issue, it looks like the dosbox.conf file is instead saved in the home folder (not where it should be). A blank file was created, but that didn't help. I ended up copying over my "DOSBox 0.74 Preferences" file to dosbox.conf to my home folder. Perhaps copying the file https://github.com/joncampbell123/dosbox-x/blob/master/dosbox-x.reference.conf might be another option.
I then opened up the dosbox.conf file and changed the machine option to pc98. Restarting DOSBox-X then started up the PC-98 emulation. I then used the IMGMOUNT command to the mount the hard drive image (hdi) of QFG1.
IMGMOUNT C /Applications/DOSBox/dosbox/SIERRA/QGANTH/QG1J/QFG.hdi
Note: To change to the new C: drive, since DOSBox-X is using a PC-98 style keyboard (I assume), not all of the keys are in the same place as on a US keyboard. The colon is the ' (apostrophe) key on my keyboard. This took a bunch of experimentation until I found the proper key. I address in the Issues section how I fixed a couple of keyboard issues, including when the CTRL key was not working for me.
Once I was able to switch over to the new mounted drive, I could see the standard game files. I started up the game and away I went.
It's been interesting trying to interact with this version since it is in Japanese (which I have pretty much no knowledge of). But using Google Translate, I was able to figure out a couple of commands in the game by phonetically typing in the words. Example phrases I figured out: look, run, sneak, rap door, climb, yes, hello, bye.
I get the sense that for non-English speakers, this was probably a similar experience by trying to learn English and when typing in commands, attempting to figure out the correct thing to type. (Consider that the Police Quest 1 phrase "administer field sobriety test" is challenging even for a native English speaker!) Fortunately, it is possible to switch the language input, or show a combination of both English and Japanese (CTRL+L).
I've lost count of how many times I've played this game since 1989, so it is always interesting to find something new or different. Besides the obvious language differences, I did encounter a couple of other things I hadn't discovered before.
If your climbing skill is not very high, you can fall off the castle walls. Do this enough times, and you can fall to your eventual death.
You can sell the Healer's ring at the Thieves' Guild for 35 silvers (which is not a good deal, the Healer gives you a lot more for returning it).
The Thieves' Guild password in this version is "Blowfish", which I don't ever recall being one of the possible passwords in the PC version of the game.
You can try to attack the fairies (but they will taunt you and then retaliate).
There are a handful of cases where the text and graphics were updated for the Japanese market, primarily the signs in town. Changing the language settings back to English will switch the signs back to English.
As a side note, it was interesting to see that full screenshots taken using DOSBox-X on my 2021 MacBook Pro rendered at a large 3024x1964 pixels, whereas screenshots in standard DOSBox will return the native resolution of the game (generally 320x200 for Sierra games of the late 80s). Since I took a good number of screenshots for this post, I needed some ways to batch resize and shrink down the image sizes. Many of these screenshots were between 1 to 2 MB in size, which adds up quickly when displaying ~40 screenshots on a single webpage. Loading 50+ MB for a single blog post is superfluous, especially if one is trying to load over a cellular connection, where bandwidth is still valuable, especially in areas of poor or slow connections.
I started off by installing the command line utility pngcrush via Homebrew with the command: brew install pngcrush, then ran it against a test screenshot to see what type of gains could be made.
% pngcrush test.png test-crushed.png
Recompressing IDAT chunks in test.png to test-crushed.png
Total length of data found in critical chunks = 1894274
Best pngcrush method = 6 (ws 15 fm 6 zl 9 zs 0) = 853831
CPU time decode 0.321226, encode 4.332043, other 0.009336, total 4.663681 sec
% ls -la test*png
-rw-r--r-- 1 chada staff 857474 Apr 30 21:18 test-crushed.png
-rw-r--r--@ 1 chada staff 1898113 Feb 2 18:54 test.png
That managed to reduce the original 1.9MB file down to more than half at 857KB. A great start, but there's plenty of room for improvement. Many of the screenshots I took on my PowerBook were under 100KB, so I wanted to get the reduced screenshots closer to that size. I then used sips (scriptable image processing system) to resize the image closer to the original game resolution. Even though the EGA version of QFG1 had a width of 320 pixels, I went for 640, which works out well for these types of posts.
That shrunk the 1.9MB file down to 388KB. Making progress. Let's compress the new image with pngcrush.
% pngcrush test-resized.png test-resized-crushed.png
Recompressing IDAT chunks in test-resized.png to test-resized-crushed.png
Total length of data found in critical chunks = 383535
Best pngcrush method = 7 (ws 15 fm 0 zl 9 zs 0) = 280199
CPU time decode 0.038348, encode 0.200314, other 0.002597, total 0.241483 sec
% ls -la test*.png
-rw-r--r-- 1 chada staff 857474 Apr 30 21:18 test-crushed.png
-rw-r--r-- 1 chada staff 284051 May 3 20:55 test-resized-crushed.png
-rw-r--r-- 1 chada staff 387543 May 3 20:54 test-resized.png
-rw-r--r--@ 1 chada staff 1898113 Feb 2 18:54 test.png
After resizing and then using pngcrush, I managed to reduce the 1.9MB image down to 284KB. A good improvement, but this could be even better. Weniger, aber besser. What if we try saving to another image format?
I resized and changed the image type to a JPEG (with 80% quality), which reduced the image down to 147KB, whereas the PNG version was nearly twice the size. Considering that there is no need for transparency in these screenshots, JPEG will work well, especially with the smaller file sizes. That was a reduction of down to 8% of the original file size! Not bad, at all.
Since I had an entire folder full of the original screenshots, I was able to resize all of the images and save them out to a new folder named "resized" with a single command:
For the most part, this game plays similar to the DOS version. The music does sound a little different, though, perhaps due to differences in the hardware I was using, in addition to how the PC-98 computer is emulated. This is my first exposure with a PC-98 game, so I'm not familiar if this is a standard variant between computer types or just how the emulators function.
However, there is a noticeable difference in the PC-98 version versus the traditional PC version. To give an example of how the game sounds, I made a recording of several scenes including Erana's Peace, the fight with the ogre, and the Kobold cave. Listen to hear the subtle differences in the Japanese version.
Trying to get a proper audio recording was an interesting process in itself, which resulted in using Snapz Pro X 2 on my PowerBook G4, instead of trying to jump through numerous hoops to get things to record well on a newer Mac. I briefly detailed some of the steps I took to make the recording in an older post about using the PowerBook.
When I got the game running on a PowerBook G4 under NP2 Carbon, the audio sounded pretty tinny, but that was likely due to the less-than-stellar speakers of a 20 year old laptop. Once I used headphones or external speakers, the PowerBook version sounded closer to the DOSBox-X version on my MacBook Pro. Considering that this sounded a lot better with dedicated speakers, perhaps I should have played from the PowerBook, but this did prove to be an interesting experiment to learn how to play a PC-98 game on various eras of hardware and software.
This version of QFG1 is missing some of the keyboard shortcuts that the English version uses, such as CTRL+A for "Ask about", but perhaps the concept to ask a question has different connotations in Japanese that wouldn't make sense for the dedicated shortcut. I was only able to figure out a handful of commands before learning that I could switch the game over to English (Sierra menu > Language, or CTRL+L). However, several shortcuts did remain, such as bringing up the stats or telling the time of day.
Unfortunately, the CTRL key was not registering under DOSBox-X 0.83.9. It worked fine in the NP2 Carbon emulator, so I initially assumed I needed to configure DOSBox-X in a different manner, perhaps to use a different keyboard layout. So I updated keyboardlayout in the dosbox.conf file to us. One can also set: pc-98 force ibm keyboard layout = true or the keyboard controller type to at. This also helped with typing from the command line, since the : was not the same key (use the ' key for that on a US layout).
Altering the configuration helped, but it still did not resolve the issue where CTRL was not recognized in Quest for Glory 1. After more research, I came across a bug report in DOSBox-X where the CTRL button not working (PC98mode). This sounded like the same issue I was having, and by upgrading to a newer version of DOSBox-X (version 2022.16.26, which is also Apple Silicon native. I don't believe the official DOSBox project has been updated to run on Apple Silicon processors yet.), this fixed the keyboard shortcut issue. Now I could quickly pull up the stats menu or perform some cheat codes!
Even in the days before the internet, I learned about the infamous cheat code "razzle dazzle root beer" in Hero's Quest/QFG1, which helps avoid a lot of excess stats grinding (and I've done PLENTY of that over the past several decades). As I mentioned in the previous section, with the initial version of DOSBox-X I used, the CTRL key did not work, which resulted in the keyboard shortcuts being useless, and it also meant that it was not possible to select cheat codes if CTRL and ALT meta keys were not recognized. The following are links for the QFG1 cheats and debug codes to modify stats, inventory, and other debugging information.
But even if that was not possible, there are other tools which can hack the character's save file which is used to transfer between Quest for Glory games. The most prominent tools I found were QFG Importer and QFG Character Editor. This latter tool is older and only works with files exported from the first two games, but there is a web interface (in addition to an archived Windows program). QFG Importer is newer and is a Windows program which can work with the exported .sav files from the first four games.
Not related to the Japanese version of Quest for Glory 1 specifically, but there is now a QFG1 Randomizer program which randomly switches the location of inventory items throughout the game, which gives the game an interesting twist. It's differences like this which inspired me to play the Japanese version of QFG1 — to add something new to a game I've been playing repeatedly since it was first released.
In preparation of the upcoming Legend of Zelda: Tears of the Kingdom, I checked how much freespace was available on my Nintento Switch and its 128GB microSD card. After nearly six years of use, the system was finally starting to get somewhat full, especially when a number of games and demos had been downloaded (hence my preference to still get a physical version of games for a variety of reasons). This led me down the path to learn how to transfer the data on the old microSD card to a newer, larger microSD card, but while using a Mac.
The basic instructions to transfer the data between two microSD cards seemed fairly straightforward by just copying the contents of the first SD card to a computer, then copy the files to the new SD card. According to Nintendo's website, it recommends using Windows, which might have avoided some of the issues I would later encounter in my experiments, but I will detail on how to do this successfully on a Mac.
Upon my first attempt to transfer the files, I was getting some error on the Switch that said the new SD card couldn't be read. After mulling it over a bit, I assumed that macOS might have added some cruft to the files (dot files and the such) which might have confused the Switch. Time to start over by formatting the SD card, which can be done from the Switch (System Settings > System > Formatting Options > Format microSD Card) or via a 3rd party tool like SD Card Formatter.
SD Card Formatter
Despite what SDCard's site mentions, version 5.0.2 of the SD Card Formatter is a universal app for Intel, Apple Silicon, and (surprise!) PowerPC processors.
It is definitely a surprise to see that this app is essentially a mega universal binary, which contains binaries for Apple Silicon (M1, M2, etc.), Intel (both 32 and 64 bit), and PowerPC. I checked the Info.plist and it does say that the minimum version is 10.5, so it does look like it might be able to run on a 20 year old laptop (like my PowerBook G4). A very welcome surprise, and well done Tuxera. My own erasing app Permanent Eraser was a Universal Binary for PowerPC and Intel until fairly recently, but this is the first case I've seen an app built for PowerPC, Intel, and Apple Silicon. I'm guessing that it requires multiple builds, and then a tool like lipo is used to combine the binaries together.
Seeing this program is interesting and stirs some interest in how it "properly" formats an SD card, which Nintendo says "Nintendo products strictly adhere to the SD card standard." The Switch can format the SD card, and creates a couple of folders inside the Nintendo folder (Album, Contents, save).
After reformatting the 512GB SD card in the Switch again, I brought it back over to my Mac, but I was careful to not open up the SD card in Finder (which can decorate a filesystem with .DS_Store files). Instead, I just ran this command from the Terminal:
Where ~/Desktop/Nintendo/ is the folder where I copied the contents of the original microSD card. Then, for good measure, I also ran:
dot_clean -m /Volumes/Untitled/
I had never heard of dot_clean before, until I came across this Reddit post. According to a Lifehacker article, dot_clean came out in Mac OS X Leopard (10.5). The Leopard man page for dot_clean says it dates back to June 28, 2006. I've dealt with cleaning up odd cruft in apps and file systems before, so this definitely seems quite handy and I wish I had known about this a long time ago. Despite these unexpected headaches — learning!
If these steps don't work, then try this bevy of commands next:
I was in the process of updating a new Mac port of a game developed with Adventure Game Studio (AGS), and after going through the standard steps, I encountered a confusing error when trying to launch the game.
"MyGreatApp" can’t be opened because Apple cannot check it for malicious software. This software needs to be updated. Contact the developer for more information.
Odd, curious, and frustrating. Since this new build was using the more recent 3.5.1 version of AGS, I assumed that the Mac shell I've been using for 3.5 was causing this mysterious error. However, I did not have the appropriate shell app, so I would need to go and create it...and in the process finally tackle something I've been intending to do for the past year — make a universal binary which can support both Intel and Apple Silicon processors.
The following steps will create a Mac shell app for an AGS game, which I then use to populate using the AGS resources (cfg, vox, exe) from a Windows version of a game.
How to build an AGS Mac shell app:
Pull the code from https://github.com/adventuregamestudio/ags.
Switch to another branch if you need to build for a particular version of AGS. For this particular example, I switched to the branch release-3.5.1.
Copy the build_ags.sh script into the ags folder. The script should be in the same folder which contains the CMakeLists.txt file. This will be important in a bit.
Next is the step to ensure that this will build a universal binary so it runs natively on both Intel and Apple Silicon. Open the CMakeLists.txt file. At line 6 (or before the project() function), add the line: set(CMAKE_OSX_ARCHITECTURES "arm64;x86_64" CACHE STRING "" FORCE)
Ensure that the build_ags.sh script has proper permissions: chmod 755 build_ags.sh
Run the script: ./build_ags.sh
After a few minutes, this will create a new folder named build_release and will generate a shell Mac app named AGS.app.
I encountered a couple of issues when trying to build the AGS shell on my newer Mac, which seemed to be missing some critical pieces which had been on my older Mac.
./build_ags.sh: line 8: cmake: command not found
make: *** No targets specified and no makefile found. Stop.
Looks like I was missing cmake on my new machine. To verify, I ran which cmake and it returned cmake not found. When I checked my old Mac, these are the details I had about cmake:
% which cmake
% cmake --version
cmake version 3.18.0
CMake suite maintained and supported by Kitware (kitware.com/cmake).
That version of cmake had likely been installed by Xcode or manually installed some time in the distant past. On my new machine, I just used Homebrew to install it via the command: brew install cmake
To verify, I checked the new location and version of cmake.
% which cmake
% cmake --version
cmake version 3.25.2
CMake suite maintained and supported by Kitware (kitware.com/cmake).
Much better. However, I also discovered that the xcode-select path was not pointing to the desired location of the current version of Xcode. Generally when running a utility like stapler, I will prefix the command with xcrun, which greatly helps in locating the associated utility. But in case of building the AGS project encountered a similar issue, it would be best to fix this by updating the xcode-select path.
xcode-select: error: tool 'stapler' requires Xcode, but active developer directory
'/Library/Developer/CommandLineTools' is a command line tools instance
% xcode-select -p
% sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
% xcode-select -p
Despite some of the unexpected frustration I encountered creating this port, it did finally force my hand to build a new version of the Mac shell app, plus learn how to configure a Universal Binary for modern Macs, which surprisingly turned out to be quite simple.
When I was a junior in high school, I finally settled on a career: I wanted to become a computer programmer and make great adventure games for Sierra On-Line. That particular ship sailed away a long time ago, but a new ship (let's name it Cygnus) has come in.
If there is any silver lining to the pandemic, it has been the creation of new artistic endeavors, which may have never happened otherwise. Instead of spending their time sailing across the world, the original co-founders of Sierra On-Line, Ken and Roberta Williams, spent their time writing books (Not All Fairy Tales Have Happy Endings and Farewell to Tara). But that was not all. The Williams announced that they were working on a new project, something that fans of their games would probably appreciate.
Enter Colossal Cave, the game which started it all for Roberta Williams and lead to the founding of Sierra On-Line and the development of many, many games over the 1980s and 1990s. Roberta and Ken Williams have reimagined this classic text-based adventure game, and it is now available for pretty much every modern platform...including the Mac.
So, I helped with a thing...
...as the Macintosh Consultant for the new Colossal Cave.
While I will never be able to work for the Sierra of old (not without the aid of an elusive time machine, that is), this is the closest I may ever come to it. It has been an amazing honor to be able to assist with this project and combine my love for both adventure games and the Mac.
Adventure on, intrepid explorer.
There have been various version of Colossal Cave Adventure made over the years, and this variant is based off of the 350 point version (which is also playable
on the game's website.). It's interesting to see the influence it had on a number of early computer games from the exploration, the mazes, treasure hunting, and then having those treasures stolen! Roberta Williams' games such as Mystery House, Wizard & the Princess, and the King's Quest series borrowed a number of these themes. This is essentially a game from the 70s, but given a modern coat of paint with graphics and sound. All of the other elements from the original (the good, the bad, and the moon logic) are still present. It helps if you are at least vaguely familiar with the text version so you can come in with a better appreciation of the 2023 version.
I have started CC a couple of times and explored around, but when I did finally sit down and play through the entire game, it took around 4.5 hours, but it probably would have taken longer if I hadn't had a copy of
The Book of Adventure Games by Kim Schuette (1984) and its indispensable maps.
Robotspacer has shown in his playthroughs of both versions of the game, the remake is very faithful to the original (much to the chagrin of many reviewers). However, the advantage of this is that one can rely on old maps and walkthroughs for this new version of the game. Even the pirate map (Maze Alike) from Schuette's book was very spot on in the remake.
When I first took notice of Twitter around 2009, I did not have much interest in it. It was initially useful to follow a few accounts, but I did not actively participate much at first besides making a handful of product announcements each year. Years later it became more of a platform to connect and engage. As with any worldwide community, a lot of good things came of it, with many great connections with interesting people and topics. Especially in the past couple of years, it provided as an alternative to Facebook, with a wider variety of interactions with people, especially those you may not know as well as more personal connections on Facebook.
Once the internet escaped the walled domains of universities and governments and was let loose into the clumsy hands of the general populace, it has been used for both incredibly beneficial and nefarious purposes. To quote the hermit from The Bride of Frankenstein, "There is good. And there is bad." However, this is the internet, which provides a platform to display the worse impulses and tendencies of humanity with little to no repercussions for such vile behavior. (It took an insurrection for Twitter and Facebook to finally take action and censure certain individuals who should have had any "rights" revoked a long time ago.)
This now brings us up to the present moment where Twitter was purchased for an astounding $44 billion dollars in late 2022. If the platform wasn't already a shit show in its own right, it was about to become a burning circus show. It's simultaneously amazing and appalling to watch how a single person has managed to destroy a company in such a short period of time. Half of the employees unceremoniously dumped, the rest expected to pick up the remaining pieces, bills not getting paid, and now it looks like third-party Twitter clients have been cut off with absolutely no notice.
The IndieWeb and Fediverse
I recently read through the Indie Microblogging book, which has provided a new perception of social media, especially in regards to blogging and microblogging. There is renewed excitement, energy, and enthusiasm for creating again — owning your own content. It is the joy of rediscovering the Old, and learning the New.
Decades ago, around the 2001-2003 timeframe, I made a lot of short messages on my devlog, more as an artifact to the old UNIX .plan file, but a precursor to microblogging, years before it ever existed. I might have been on to something before it really took off.
Sites like Twitter and Facebook make it easy to post, but they control the content and the ways things are run. Consider how many years Twitter has gone without even an Edit functionality to easily fix typos. Much to my delight, such an obvious feature already exists for Mastodon.
There is a benefit of owning everything, with better ease to comb through your own content. If one of these social media silos crumbles, it will take everything with it. So many things have been posted over the years, but as Roy Batty so eloquently put it:
"All those moments will be lost in time, like tears in [the] rain"
There is definitely a sense of starting over. Things will inevitably be lost, and other areas, such as discovering new Playdate projects, will likely need to fall in the domain of YouTube, Reddit, and developer forums.
In 2014, I wrote the short story Digital Suicide, a story about digital death, burnout, and starting over. Those three points exemplify what is happening now quite aptly. The death of digital properties. The burnout of so much frustration and related headaches. And the process of letting go and starting anew.
Twitter has become the source of so much "doomscrolling" where a single word or curt phrase could cause severe anxiety to manifest. I've seen numerous people take breaks from social media for their own mental well-being; some have even taken a permanent vacation. I'm currently in the process of archiving and deleting some Twitter accounts (e.g. @kq1redux) and winding down regular usage of my primary account. The biggest change I have noticed has been breaking the habit of continually checking my phone, getting that little hit of "what's new and interesting". But it has also helped distance me from much of the world-wide negativity. Not that the world isn't still delightfully mad at times, but it has helped calm the torrential storm. When I occasionally duck my head back in to the fetid waters of Twitter, it feels like returning to a place where you once lived. Seeing what's new, what's changed, and then getting out as quickly as possible as you are reminded why you left.
Even as I was in the process of writing this post, more bad news kept rolling in from a massive security breach of 235 million e-mail addresses to the inexplicable blocking of popular third party Twitter clients. If this is true that third party Twitter clients have been so unceremoniously cut off without any warning (much like how half of Twitter's employees were let go last November), it's just more reason to get away from Twitter and not support it. As Manton Reece detailed in his book's chapter Leaving Twitter, the company has been restricting API access for years, and this might be the final death knell. As of this writing, Twitter has not officially responded to what is happening and if this is an accident or truly extremely hostile behavior towards other developers who have helped support and build upon the Twitter platform for years. Twitter has been crumbling for years, perhaps it just took the new ownership to topple things even further instead of trying to repair the faults.
I will see how everything shakes out, especially with Mastodon if it proves to be a happier alternative to Twitter, or if it will devolve into a similar cesspool of vitriol. Ultimately, this is a way of starting over again. Fortunately, I had not amassed a huge collection of connections on Twitter, and there will inevitably be connections which will be missed and lost, but for now, it involves finding active accounts which have made the move to Mastodon. Over the years I've invoked my minimalistic tendencies and culled through lists on social media, and this might be the most efficient method of trimming the branches.
How to get an archive of your Twitter data (via the website):
More > Settings and Support > Settings and privacy > Your account > Download an archive of your data
Note, this is not an instantaneous process and will see a message that says: "We received your request. To protect your account, it can take 24 hours or longer for your data to be ready." From my tests, it took about a day before I got a notification that my data was ready to download.
How to deactivate your Twitter account:
More > Settings and Support > Settings and privacy > Your account > Deactivate your account
See you around the chronostream...
An Ode to Twitter
I'll end this by paraphrasing the Scorpions' song "Humanity"
Twitter, auf wiedersehen
It's time to say goodbye, the party's over
As the laughter dies, an angel cries
Twitter, it's au revoir to your insanity
You sold your soul to feed your vanity
Your fantasies and lies
Be on your way, adiós amigo
There's a price to pay
For all the egotistic games you played
The world you made is gone
You're a drop in the rain
Just a number not a name
And you don't see it
You don't believe it
At the end of the day
You're a needle in the hay
You signed and sealed it
And now you gotta deal with it
Another circuit completed around the sun, and well... life is chaos, but it's good to be still around. This past year has been fairly quiet on the software front as I spent most of the time working on the second draft of my current novel. One chapter, in particular, took quite a bit of time since it required a massive rewrite (and is much better because of it!). I also posted an old short story "Digital Suicide" as a bit of a nod to the burning circus show which has become Twitter over the past two months. Since the focus of this site has become a lot more gaming-oriented over the past several years, I also wrote up a couple of articles about Quest for Glory V.
Last Year's Plans
A quick look back at how last year's tentative plans shook out:
Mac AGS ports: I made an update for KQ4 Retold. There is another AGS game I also made a Mac port for, but it hasn't been released yet, so more about that once it is available.
Completed the second draft of my novel, working on wrapping up some smaller projects and blog posts, next on to the Playdate!
No real work on Permanent Eraser 3.0.
Plans for 2023
This will be the Year of the Playdate! This curious handheld gaming device shipped last year, which has generated a lot of interesting ideas across the Playdate developer community. I have a couple of small, Sierra-themed ideas I want to experiment with. I might even bring my old game Psychomancer to Playdate via Pulp!
EdenList 2.3.2 has already been released this year, which follows up on last year's releases for Edenlist 2.3.0 and 2.3.1.
Start on the 3rd draft of my novel. Considering how much time the 2nd draft took up last year, I don't plan on focusing on this quite as much, but I will do some clean up and find more beta readers.
Perhaps make an update to King's Quest 1 - Redux. I've already made one small experimental update, so I might add a few more if the fancy strikes me.
More AGS ports, maybe look into an Apple Silicon build. Fortunately, any of the existing AGS Mac ports I've created seem to work fine on Apple Silicon Macs up to this point (currently macOS Ventura), but eventually Apple will drop support of Intel, just like they did with PowerPC and the Motorola 68K chips in the past (it's inevitable).
Today, EdenList 2.3.2 for iOS has been released and is freely available for download from the Apple App Store.
What's new in this release:
Updated UI for iPhone 14 Pro
Fix for returning to a new, empty list
Verified and tested with iOS 16
This release focused on a number of smaller quality improvements, the type of things which often would be pushed aside for more "important" features in larger app development. I first noticed that the search bar was far too close to the Dynamic Island on the iPhone 14 Pro, which was corrected by connecting the search bar controller to the navigation item, instead of the table view. I also saw an odd darkened tint appear in the menu bar when transitioning screens on iOS 13 and later, and this issue has also been corrected. It has been a pleasure to be able to continually add polish to this long standing iOS app over the years. Share and Enjoy.
The steady glow from the screen was the only source of illumination in the otherwise darkened room. The feeble light could barely make out the towers of boxes cluttering the room and the sole occupant sitting before the computer. A flurry of chiclet keys being pressed was the only evident sound, a noise portending the coming terminal doom.
Robert was dying. Not so much in the physical sense, even though his heart felt like it had been cauterized out by the soul-sucking entity called Corporate America. He was destroying his electronic avatars, one bit at a time. He was bit flipping his life. One moment he would be there, but with the flip of a switch he wouldn’t. Facebook was the first to go, with Twitter soon following. The crusty remnant of his MySpace page from ten years ago was still lurking around, but he had forgotten the original password. One password reset later, then digging about to find how to delete the account, and then the awful deed was done.
After so many years residing online, he had built up a number of digital personas, enough that he struggled to remember everything he had signed up for at one time or another. He had even once had a GeoCities page at one time, replete with annoying, animated GIFs. Yahoo had already euthanized that entire site of embarrassing starter sites which had been the home to so many teens in the 1990s who were constructing their first amateur web pages.
The computer, the very machine which had been the focus of his craft, the instrument of creation, was now being used as an implementation of destruction. His life was in shambles, he was now just tearing down what little still remained. The road had become rocky over the past several years, which finally halted at the dead end of today. There was no future path in that direction, it was time to backtrack and start over.
The journey had initially begun as an exciting endeavor, enticed by the new possibilities offered by emerging technologies. Young and impetuous, he was eager to make a dent in the universe. After fifteen years of the game, he was seeing the same play reenacted, just with a change in the cast. Companies continually sparring against each other. Competing. Cheating. Stealing ideas and making bold claims of innovation. To fuel the fire of controversy were the legions of fanbois, loudly thumping their chests and claiming their position superior to all others. They might all make excellent politicians one day; if they could find their way out of their parents’ basements, that is.
Robert had had his own time, especially during the early years, espousing the benefits of his preferred web browser or operating system. Now, he didn’t care so much. Age and experience had knocked the blinders off, so he could finally step back and objectively look at the world. Nothing was perfect. One product might have advantages over another, but that did not denounce the competitor as wholly wrong.
As he got older, and occasionally picked up a nugget of wisdom along the way, he realized that time was no longer an infinite commodity, but a very finite and precious resource. Whether he liked it or not, time was continually spent, which made it all the more critical that he made good use of it. Wasting his time, energy, and patience arguing with thirteen-year old boys on the internet was no longer entertaining. The game had become trite and boring.
The daily motions of work and school had become well engrained and automatic. Grade school with its rigid structure was merely the prelude to a corporate world filled with bureaucratic rules and starched, white shirts. The fire in his gut that had spurred on his natural curiosity to explore the ever-burgeoning technological landscape had been quenched after so many years of corporate monotony. The passion that had fueled his earlier academic endeavors had been reduced to the faintest ember.
Year after year, he had continually strived to better himself, keeping his skills finely honed. If he ever faltered or dared to take a break, he would lose his competitive edge and be supplanted by some recent fresh-minted college grad who had nothing to their credit besides unbound enthusiasm and fewer chips on their shoulders.
Technology was quicksilver, perpetually reinventing itself every couple of years. There was no solace in settling with a single niche technology, since it would most likely be obsolete within a couple of years. Rewards were only dolled out to those who kept ahead of the curve and ended up in the right place at the right time — if the particular technology caught on with the mainstream. Otherwise, one might have just wasted their time.
The never-ending cycle had worn him down and made him eternally weary. He no longer had the energy to keep sprinting through the marathons. He had worked the grueling death marches to meet some arbitrary goal.
But no longer. He would no longer subject himself to such pointless exercises of torture.
In the end, it was all for naught. All those years, professionally nodding his head in agreement with managers who were limited by the Peter Principle, too ignorant to realize their ineptness, and too stupid to understand the idiotic decisions they made. Yet, blinded by their own misguided brilliance, they brazenly ignored the advice from anyone but their favored cadre.
Robert had not been in that particular group of ordained rock stars, so it came to little surprise when he lost his job. It didn’t matter a single whit all of the nights, weekends, and even holidays he had worked. It’s not Labor Day if you don’t put in 10 hours of labor! He wasn’t the best or fastest worker, he knew that, but he had always put in his best to ensure that the job was done properly. But he didn’t deserve the treatment he had received in the end when the axe came down. The managers needed a scapegoat to sacrifice, and he fit the bill. By getting rid of him, all of their problems would suddenly go away. Robert knew differently, though, their problems wouldn’t just ‘go away’. The company was rotten straight down to the core, and no amount of slicing or dicing of innocent employees would ever fix the company’s true problems. Not until the company had undergone a management enema would there even be the slightest change for a positive turn of events. Not that he harbored any false hope that would ever happen, especially not with the lunatics already running the asylum.
To hell with all of it. He was sick of the high school politics. The blatant favoritism. The shiny, gold rock stars. Since he wasn’t in the proper clique, he didn’t matter. Robert could have told the management the building was actually on fire, but they wouldn’t have believed him unless one of their valued toadies confirmed the fact that the building was indeed, on fire.
Another rapid succession of key strokes. Another account gone, marking a chapter of his life that had come to an end.
The fire had been ignited by the fury of his anger, but he intimately realized that he was wasting his hate on the simpletons who had cast him aside. He wasn’t the first, nor would he be the last. In an intoxicating dream of Americana, employees were loyal to the company, and the company would take care of the employees in return.
Company loyalty was an ancient concept, long dead and gone. Companies were always willing to let their employees work their way down to their hypothetical bones, before tossing off their withered husks to the winds of unemployment. There would always be more resources to draw from. The universities kept churning out new batches of eager grads, anxious to make their mark on the world. A mark that could just as easily be wiped away, without the slightest trace of it ever existing.
Robert had spent years etching his digital signature across the internet, but it was going to be his own hand that would erase it, not that of some soulless entity. Next up were the source code repositories. Several minutes of work, and all of the contributions he had made on GitHub and SourceForge were obliterated. He wasn’t just eradicating his presence, but taking everything he had created, as well.
Day in, day out. Weeks and months rolled over into years, which bled into decades. Then one particular job, Robert found himself to no longer be the confident upstart who was intimately familiar with the latest and greatest of technologies, but now found himself to be closer to the cynical graybeards he had once mocked.
Where do all the old programmers go? A common question, but left without a proper answer, one that Robert would have liked to have known. Programming was an endeavor best left to the youth who had spare energy to burn. He had burned the candle at both ends for too many years, leaving a sodden, waxy mess in its wake.
Since he was effectively removing his online presence, he figured he might as well do the same for his physical self, as well. It was well past time to disconnect from the rat race of society, decompress for several months and focus on more leisurely pursuits, rather than spending his days ferreting out software bugs.
Finally seeing things with a crystal perspective, he observed the desolation of years gone by with little to show for all of his efforts. Like Thoreau, he was going off the to the woods to live deliberately, so that when it came for him to die, he could claim that he had truly lived, and not squandered his life on petty frivolities.
Perhaps now was the moment for a well-timed mid-life crisis. He had been traveling on the same career path for so long that he had never taken the time to consider other options. The further he traveled down the road, the more difficult it became to start over. But that might be the best thing for him, to begin anew. Cast off the chains off a former life, and embrace the excitement of a new venture.
It was time to get back to the basics. Remove the technological hurtles and simplify life. Thoreau had his pond. Robert had his mountains.
He had always loved going to summer camp during his youth. It was the one week out of the year where he could extract himself from the rut of daily life and live in a more carefree fashion. It was a time of reinvention where the other kids had no preconceptions about him, which allowed him to be whatever type of person he desired. It was blissful freedom, the type that was not offered by the constraints of his normal life. A small valley of paradise was surrounded by mountains, which formed an impenetrable barrier around an idyllic alternate reality based on faith, hope, and charity. It was time for him to return to nature.
His severance package had not been overly generous, but he wasn’t going to be overly hurting for money for the next several months. He had rented out a small cabin at the camp, where he would spend the summer relaxing by reading and playing guitar. His life had been so consumed by his work, leaving him exhausted each night, that he rarely had the time or inspiration to pursue the hobbies of his youth.
This was his declaration of personality bankruptcy. By wiping away his past and allowing for a time period of adjustment, he would rise from the ruins to begin a new life.
The laptop’s dim, TV-static light cast an ghostly pall throughout the room, outlining the pillars of boxes which contained nearly all of Robert’s possessions he had slated to go into storage. Only a small pile of books and a guitar remained unpacked. The light was too weak to read the book titles, but Robert knew which titles he had carefully selected that would be taken on his sojourn: Fahrenheit 451, Walden, and a Led Zeppelin tablature book.
Now for the final account, his e-mail address he had used longer than any other. Tens of thousands of e-mails, perhaps even hundreds of thousands, each message detailing a small figment of his life. All of those correspondences and memories, to be wiped out by a single motion. His finger hovered over the DELETE key, momentarily pausing like a guillotine blade.
A single soft click heralded Robert’s demise. His digital presence was gone, wiped clean away. Bit flipped to 0. Zero, nil, the empty set. He was expecting a wave of regret to smack him smartly upside the head, but it never came. With his past now a memory intended for the dustbins, Robert readied himself for his new future. He had purified his mind by releasing the past to allow for new memories to flood in.
As the computer prepared itself for shutdown, Robert picked up the books and guitar. The computer’s grey screen winked out, cloaking the room with darkness.
Welcome back for another post about the Quest for Glory computer game series. This one will revisit Quest for Glory V: Dragon Fire, covering various releases, tidbits, and other interesting details (and less about fighting technical issues like last time I wrote about this game).
As evidenced in Stephen Emond's Sierra Collector's Quest volumes, there were many variants of Sierra products over the years. This collection is just a subset of what was released for Quest for Glory V:
Back: (L to R)
German version (Drachenfeuer)
Original US version I bought back in late 1998
Front: (L to R)
Italian version : Despite the many variants recorded in the Quest for Glory volume of the Sierra Collector's Quest collection, this yellow version was not shown in this book, which is likely a sign of how many versions can be made, and how incredibly difficult it can be to catalogue every version.
Benelux version (descriptions in Dutch and French on the back)
Side note: I purchased the Polish QFG collection which has the "Hero's Blade" cover, but the CD only contains the first four QFG games, despite the cover being from the fifth game of the series. I initially thought that this was another variant of QFG5. When I looked at the system requirements (486 processor, 8MB of RAM, x2 CD-ROM), it tipped me off that this wasn't what I had originally expected. Stephen Emond's book about the Quest for Glory variants confirms that this is just the Polish version of the traditional QFG collection. I am not aware of any boxed collection which contained all five QFG games, since most of these collections were released in the mid-1990s, a few years before QFG5 was released in late 1998.
PowerMac G4 Setup
This is a game which takes a little more setup since it came out during that odd era of the late 90s (Windows 9x/Classic Mac OS), so it isn't as easy to play this game as those games which were developed with the SCI engine (thank you DOSBox and ScummVM). In my previous QFG5 post, I contemplated investigating Sheepshaver further, but instead I upgraded my PowerMac with new RAM, a better set of speakers, a new mouse, and an SSD drive.
My main workhorse for many years, which is able to run every version of Mac OS from version 9 through 10.4. When I initially purchased this computer in 2001, I was deciding between this and a G4 Cube. As stylish as the Cube is, I'm glad I ended up going with the PowerMac, which has had numerous upgrades, including a Zip drive and two larger hard drives. The expandability is a key reason it has survived so long.
512 MB PC100 SDR SDRAM
After the multitude of problems I experienced five years ago, I needed to replace the bad RAM stick. It had been awhile since I'd purchased new RAM, and it looked like my old sources (RIP Ramseeker and 1-800-4-MEMORY) are no longer around. Fortunately, OWC had me covered for some new RAM. I certainly didn't need the extra RAM, but there is something satisfying about bumping the computer up from its original 64MB of RAM to 1.75GB of RAM.
Fortunately, replacing the RAM resolved the issues I experienced previously. There were only one or two crashes experienced throughout the game. I had a few cases where it initially looked like the game crashed, only to find that Mac OS 9 decided at that point to start indexing the hard drive. Ah, the joys before proper preemptive multitasking.
ADC Display 15”
I splurged and bought a refurbished one of these monitors (from the now defunct PowerMax) when I was a poor university student, and it is still an amazing monitor. I even used it as a daily supplementary monitor until recently (had to convert from ADC to DVI to USB-C, but it worked). Prior to USB-C, ADC might have been the only single-cable option which could provide video, power, and USB through a single connection on a Mac. The power button on the monitor is also very handy, especially since I don't have a keyboard with a power button on it any longer.
ATI Radeon 9000 Pro Mac Edition
An upgrade from the default ATI Rage 128 Pro (16MB VRAM) video card to 128MB DDR VRAM. Includes both ADC and DVI ports.
Logitech Wheel Mouse
This is the type of mouse I would have been using 20 years ago. I used the Logitech MouseWare driver software to switch the middle and right mouse buttons, so right-clicking would correspond to right-clicking in the game.
Harman/Kardon SoundSticks III
I saw the Harman Kardon SoundSticks IV at a Micro Center and initially thought this was some retro-style callback product from twenty years ago, only to discover that this was the fourth model of a continuing line of speakers. These were more modern and included Bluetooth, which did not interest me for my retro computer setup, but a standard 3.5mm line in would work just fine.
Years ago, I had some JBL Creature speakers, which sounded great until the satellite speakers died. I purchased a used set of these speakers, but the satellite speakers didn’t work. After a bit of research, I discovered that there's a known issue with the magnets coming loose. I even tried to find a fix, but it would be tricky in finding proper replacement speakers. I then looked at some Apple Pro Speakers. I fortunately did not find any, because my PowerMac is one year too old to power and run them effectively.
Since the other options weren't panning out, I took at look at the SoundSticks again, and discovered that the model III was still available for sale on Amazon, and at a much more reasonable price versus the IV's $299 price tag. The SoundSticks III look great, sound great, and made the magnificent QFG5 soundtrack soar.
Matias Tactile Pro 4 Keyboard
I started using the model 1 about fourteen years ago, which also had the power button on it. This time around, I'm using the fourth generation, which also contains a keypad, very useful for combat in this game.
120GB OWC Mercury Pro Legacy
I purchased one of these to help future-proof this machine by being able to equip the PowerMac with an SSD drive in case any of the existing hard drives die. Mac OS 9 doesn't handle partitions larger than 80GB (or perhaps a little larger), but most new 3.5" hard drives tend to be in the 1TB+ range. I haven't installed it yet, I'll need to copy over the data from one of the other drives, but it will be interesting to see what type of speed increases I might see.
Batch Renaming PICT Files
In preparation for this post, I took a number of screenshots from the PowerMac G4, and then copied the files over via a USB thumb drive to a modern Mac so I could convert the images to a more modern format.
While many things have changed over the last several decades, some things have remained the same. As it was with Mac OS 9 and even up to today, the keyboard shortcut to take a full screenshot is Shift-Command-3. The primary difference is that Mac OS 9 saved the image in the PICT format, whereas the modern macOS saves as a PNG. However, when moving the Mac OS 9 screenshots over to a modern version of macOS, there is no file extension and macOS Ventura doesn't recognize the file and assumes it to be a UNIX Executable File. Mac OS 9 identifies them as SimpleText files (since the program SimpleText is used to open those screenshots), but they are the older image PICT format. By just adding a .PICT extension, macOS can properly identify the files.
The next step was to convert the PICTs to a more web-friendly PNG format. Since there were a decent number of files to convert, I used a short script from the command line in macOS Ventura 13.0.1, which uses the zsh shell.
for i in *; do sips -s format png $i --out $i.png;done
Running this command iterated over the directory of PICT files and created a PNG version of each image.
Other Oddities and Things of Note
After multiple playthroughs of a game, one finds little oddities and inconsistencies, as documented with the following screenshots:
When I completed the first Rite, I freed all five of the fishing villages. The primary goal is to be the first person to free their village and return with the town's sigil. If one is not fast enough, then Gort can win this Rite. An extremely odd thing happened this time around when I spent several days freeing all of the villages, the game claims that Magnum Opus also freed his village, which resulted in a three-way tie.
Difficult To Find Monsters
There are around twenty types of enemies to fight in the game, and some of them are a little more difficult to find, whether they are found only in certain locations or at night. The Weirdings I only found near the island of Delos, and they came with some great loot of Magical Chain Armor. The Salamander I don't ever recall finding before because I hadn't done too much swimming in the ocean besides near Silmaria.
In the game, the (SPOILER) scientists poison several wizards with a tainted box of chocolates. However, there is a line where Shakra mentions that Erasmus was poisoned via his tea, which is inconsistent with the rest of the story. I'll assume that this was a change in the story, and that one line slipped through. Also notice how in this game, the rat's name is spelled as "Fenris", but in the previous QFG games, it was spelled as "Fenrus".
Speaking of spelling inconsistencies, another one appears in how to properly spell the name of the island Lymnos/Limnos. On the map, it is spelled "Lymnos", but the in-game dialogue and description spell it as "Limnos".
Quest for Glory 4 had numerous Edgar Allan Poe references, and while QFG5 does not contain the gothic atmosphere of the prior game, at least one more nod to Poe made it in. When looking at one of the underwater statues, there is a line which comes from the poem To Helen — To the glory that was Greece, And the grandeur that was Rome.
Unlucky In Love
Neither Erana nor Katrina seem to appreciate it if the hero has been a little too friendly with Nawar. (Odd how they know, considering they don't leave their respective islands.) Elsa doesn't seem to care, though.
Extra Quirky Messages
Quest for Glory games contain a lot of silly jokes and descriptions, and QFG5 does not have a shortage of those, whether it be an Alfred Hitchcock reference or some in-joke that might only make sense to the game developers.
Thoughts About QFG5
The QFG series introduced an interesting Adventure-RPG hybrid, yet the original QFG5 game box classifies this as an Action-RPG (however, the UK box says Adventure-RPG). So, is this still a QFG game? Absolutely. It ties in and ends a series which had originally been planned as a four-part series, but was stretched out to five games (pentology?) with the inclusion of QFG3. The same cannot be said of King's Quest: Mask of Eternity, which barely had any ties to the previous KQ games. It is the logical conclusion of the series, representing West and winter. A number of previous characters and references to the other games are also present (Erasmus, Fenrus, Erana, Katrina, Rakeesh, Salim, Julanar, Elsa, Bruno).
It is different from the other games in that it is more of an Action-RPG hybrid than an Adventure-RPG hybrid. It is definitely much stronger with the fighting and typical RPG elements, especially with a larger variety of weapons and armor (whereas the previous games kept these fairly limited), and a large variety of monsters. Perhaps they focused a little too heavily on some of these aspects of the game, and not as much on others. But considering how there have been monsters axed from final games (such as the Hyenamen from QFG3), perhaps it was a bonus to have a variety of monsters, or perhaps creating a variety of monsters (Boarmen vs. Goremen) were similar, more variants than truly unique monsters. In QFG5, there were at least twenty different opponents (not including the arena combatants). For a comparison, QFG1 had ~10 types of monsters: Saurus, Saurus Rex, Troll, Ogre, Minotaur, Bear, Goblin, Brigand, Mantray, Cheetaur (7 of these being common monsters, three are one-time encounters).
Makes it up to the Thief for shorting that class in QFG3, with plenty of things to do in this game, and it ties up the whole Blackbird mystery.
Once again, the Fighter is somewhat ignored and doesn't even get the bank robbery side quest. However, this game is action and fighting oriented (so not possible for a 100% pacifist run). The arena combat and plenty of rites involve fighting, plus a plethora of monsters.
A few tidbits straight from the creators of QFG via their Twitch channel, the original QFG5 website, and other nuggets dug up across the internet:
The original title was going to be King's Crown.
If QFG5 had come out right after QFG4, they would have kept with the QFG4 style of graphics and combat system.
A wizard mini-game was planned to earn the Whirlwind spell by playing some Wizard's Whirl, but it was scrapped. It might have been something similar to how the Magic User can learn the Dazzle spell from Erasmus after winning a game of Mage's Maze in QFG1/HQ.
When I first learned about QFG5 being in development, it was originally slated for release in Summer 1997. Even at this time, that release date seemed far too ambitious, since game development often gets delayed for a myriad of reasons. Reading the designer diaries from the QFG5 website confirmed my suspicions that they were no where near to release the game in mid-1997.
Back in mid-October 1997 the 3D Max artist John Lindemuth was still contemplating how to animate a water-breathing amulet (so much for a summer 1997 game release). A designer diary from lead systems designer Eric Lengyel mentioned adding lighting effects and how great it would be to see 16-bit color would look in a future Sierra game. Good news, that "future Sierra game" ended up being QFG5. Interesting to look back at various snapshots of a project's progress and see how things shook out. Adding the dynamic lighting and 16-bit graphics added another 6 months of development to the game, but it was well worth the end result. Considering that the early 3D games of the 90s often did not age well, QFG5 fared far better with many rendered objects and dynamic lighting.
Hacks and Updates
QFG3 and QFG4 have received new fan-made patches in the past few years (in addition to the indispensable NewRisingSun patch), and QFG5 has also received its own new patch for Windows. According to the notes, it fixes a number of bugs (especially for non-English versions of the game), plus it fixes some issues when playing through the game as either Elsa or Magnum Opus, who were playable characters in the demo, but were only NPCs in the final game.
Speaking of Elsa and Magnum Opus, when I was digging through my Mac to look at all of my QFG5 saves and determine how many times I've completed this game (at least 8), I found some Elsa and Magnum saves dated November 28, 1999. These are likely hacked saved games to play as either Elsa or Magnum as each of the four classes. There were plans to allow for multi-player capabilities, and between the patch and these save games, it should be possible to play through the game as one of these others characters.
With the release of the Playdate
this year, it has further rekindled my interest in graphics styles of an older era. Or are they just older graphics implementations for the modern age? Even though modern electronics have been able to push 16.7 million colors on high gamut displays for a long time, there is always a market for small, simple, and inexpensive displays. While the 1-bit display on the Playdate delivers a hefty dose of nostalgia (along with a ton of fun), it has been exciting to see what developers have been able to do with limited graphical constraints. This led me back down a deep rabbit hole of to research ancient dithering algorithms and color spaces to create the second version of the Agifier plug-in for Acorn.
What's new with Agifier 2.0
Implemented Floyd-Steinberg dithering. This was a critical missing piece in trying to simulate a more complete image while using a limited color palette. There are many different dithering algorithms available, but I settled with one of the most famous ones.
Download: Download the files directly from GitHub or install via git with the command git clone https://github.com/edenwaith/Agifier.git
Installation: Copy the Agifier.acplugin plug-in bundle (found inside the Agifier folder) into ~/Library/Application Support/Acorn/Plug-Ins folder on your computer. Create the Plug-Ins folder if it does not exist yet.
Usage: Restart Acorn after copying over the plug-in, then open a file and select the Filter > Stylize > Agifier menu. This will reduce the size of the image and reduce the color palette down to the standard 16 EGA colors that were used in Sierra games.
Continue exploring better selection for colors, especially in regards to green, perhaps experiment with additional color models. Unfortunately, the human's perception of color does not always align with the math of finding the "closest" color, so a lot of the greens get washed out and turn to more muted greys and browns. This is partially due to the human eye being more sensitive to greens, but not as much with blues. I did add another example for trying to select colors (modified Euclidian method), but it didn't seem to help much.
Use different dithering methods to see if the results come out any better or worse.
[Far Off Future] Implement Machine Learning (ML) methods to determine the best way to make a proper EGA representation of an image. Perhaps implement checkerboard dithering patterns to simulate certain color areas (in the style of SCI0-era Sierra games of the late 80s).