"Peasant's Quest" Demake -- DOS/CGA

This page is about a DOS/CGA implementation of the Homestar Runner Flash "Peasant's Quest" Game.

This is very much a simple proof of concept.

See the Apple II version for a more complete 8-bit Peasant's Quest experience.


Peasant's Quest Title Screen in 4-color CGA


Inspiration

I was working on finishing the Apple II PQ and saw a CGA coding jam was happening and though "how hard could it be to port it".

There have also been many hints of a DOS/CGA heritage for the game, with with Strong Bad's "4 of 12: World Games" episode which had a CGA Kerrek, but also the original Peasant's Quest Preview video saying the system requirements were maximum 286/CGA.


Legal Note

This product contains trademarks and/or copyrighted works of homestarrunner.com. All rights reserved by homestarrunner.com. This product is not official and is not endorsed by homestarrunner.com.


Current Status

Major work remaining:

Videos

Promo for the initial release. Most of the video captured with MartyPC emulator running at normal original IBM PC speeds.

Screenshots

Note: these were captured with the DOSbox emulator.




System Requirements


How can I play it?


Downloads

Disk Images

Source


Controls

The controls are similar to the real game, with arrow keys controlling the walking and typing text for commands.

If you want to change the color palette try control-B or control-Y

Implementation Details

I never really liked DOS, and while I spent some time in the 1990s on the platform it was in the 386/VGA era, not 8086/CGA. I did write some games back them but mainly in VGA mode 13h in Turbo Pascal. So this is bringing back a lot of ancient skills (and ancient bad habits tripping up my C coding, like the whole = vs == mess).

A few notes for the curious:

Mini-faq


Development Notes

5 April 2026 -- Version 0.02

Finally got a more or less interesting release out the door. The big hold up was priority (i.e. the ability to go behind objects). In the end went a different route than the Apple II port, and was extravagant and waste 16k on the lookup table. Lets you have much more fine-grained objects, while wasting vast amounts of memory.

30 April 2026 -- Version 0.01b

This semester was over-the-top busy so made very little progress.

Finally had some time and got the common dialog working. Then loadable dialog. Then got level transitions. Decided to keep the data in a separate file on disk and using the WAD format for that (as a joke at first, but turns out it is a good one to use).

Getting close so the slow load-time of the pascal zx02 decompressor got to me, so re-wrote that in 8086 assembly. Ran it on Linux/32-bit first then converted to 8086 DOS. Am out of practice with 8086 asm so got caught by things, like MOV not modifying the zero flag, then trying to use OR to set zero only to find it modified the carry flag. The last issue that needed fixed was ret was retf by default when I wanted retn, but after that it worked.

16 January 2026 -- Version 0.01

I had some code floating around to convert a CGA-style PNG file to something Turbo pascal could load. I made this as a joke to load a static image of the Kerrek scene. For some reason I began ramping things up to show a few scenes from the game and as always things got out of hand.
Other Demakes
Back to the VMW Software Productions Page