Wednesday, October 25, 2017

Shenzhen Solitaire - A Review of 2017's New Commercial DOS Game

I have a confession to make.  Until last month, I have never backed a kickstarter project.  I have talked about kickstarter projects on at least one prior occasion on this blog, but I was speaking from afar.  The usual excuses apply, the good reward tiers cost too much, the project carried considerable risk or the product offered just was not sufficiently personally compelling to persuade me to part with my hard-earned money.  Last month came a game which seemed like a good choice for a kickstarter project, Shenzhen Solitaire.  This is a new PC-compatible DOS game for the year 2017.  The price was only $10, the game had already been written and was going to be delivered on a floppy disk, so I was sold.  (Really living on the edge here in terms of crowdfunding risk here :) It was delivered to me yesterday, so let's review the game.

Development of the Game

Shenzhen Solitaire was released by a company called Zachtronics.  Zachtronics is an independent developer that has released several "open-ended puzzle games" games on Steam.  Its puzzle games deal with what would seem to be intimidating subjects to many people : programming, logic, chemistry, assembly lines.  The Steam reviews of its games collectively range from "positive" to "overwhelmingly positive".  The developer seems to have a small but devoted following.  

On Steam, Shenzhen Solitaire is a mini-game component of Shenzhen I/O, a programming puzzle game.  The main game has you use a combination of code, logic circuits, waveforms and reference sheets to solve puzzles.  The story behind it is that you are a new engineer at an electronics factory in Shenzhen, China and must complete products with code and logic.  It was released in November of 2016.  

After the release of the game on Steam, Zach Barth and Keith Holman, the main programmers behind Zachtronics, decided to port the Shenzhen Solitaire mini-game to DOS.  They wrote up an article on Gamasutra explaining how and why they decided to port the game :

Loading Screen

Shenzhen Solitaire was written in C and compiled by Borland Turbo C++ v3.1.  They used some in-line assembly to speed up the drawing routines considerably, not unlike programmers of the early 90s would.  It targeted a rather modest vintage PC compatible.  It officially will run on a 386SX20 with a VGA card, 640KB of RAM, a Mouse and DOS.  It will run on an 8088, but performance may not be acceptable on that class of CPUs.  

The game was developed with DOSBox.  Unusually for a game of this era, it uses the 320x240 256-color "Mode X" mode instead of the more common and easier to program 320x200 256-color Mode 13h.  This ensured that the pixels would be square and that the project would be more challenging and personally fulfilling.  It does not support any audio cards and uses the PC speaker to play a few notes and a few sound effects.  Shenzhen I/O does have a soundtrack, and the author of that soundtrack released an "Retro FM" inspired theme for Shenzhen Solitaire here :  It is a good track, I only wished it could have been incorporated into the game, but no OPL2 or OPL3 chip could manage it.  A Sound Blaster could play back the music digitally, but that would probably require the developers to require the loading of an Expanded Memory driver or a 32-bit DOS extender.  

Game Start

The kickstarter's page,, indicated that the game would ship on a single floppy disk and would come with the source code.  The campaign set a modest goal of $200 when it began on August 21, 2017 and reached it pretty quickly.  The campaign ended with $3,995 raised on September 11, 2017 (a more inauspicious end date could not have been chosen.)  The only warnings were that they could not ensure compatibility with every PC that met the minimum specs.  You can buy the game after the kickstarter has ended here for $14.99 (U.S. shipping) or $19.99 (international shipping) while supplies last :

Box Contents, Installation and Support

I received my copy of the game yesterday.  It shipped in a manila envelope and came with the single floppy disk and a folded-up box for the disk.  The box is large enough to contain the disk and maybe a few sheets of an instruction manual, but I decided to keep mine flat.  I was also lucky enough to receive a Shenzhen I/O patch leftover from a previous promotion.  Not everyone would get the patch.  

The game can be run off the floppy and the loading instructions are printed on the disk.  It can be copied over to a hard disk, which allows the game to load much faster than a floppy disk.  If the developers did not include the source code, the game would have fit on a 360KB 5.25" or 720KB 3.5" floppy.  The game weighs in at 309KB.

After I opened my envelope, I immediately put the disk in my 486 to run the game.  Unfortunately the game would not read in my floppy drive, reporting a "General Drive Failure".  I cleaned my drive heads and tried a second floppy drive, but I could not get anything other than a General Drive Failure message.  I tried other 3.5" HD and DD disks and was able to get them to give me a directory listing, so I knew my drives were not obviously broken.  The disks looked in good shape with immediately obvious signs of being reused disks, but I noticed some dust or wear in the area where the disk clamping ring meets the inner edge of the disk.  It may be possible that the adhesive used to attach the disk ring to the disk clamp may have weakened or shifted over time.

I contacted Zachtronics by email and received a reply in seven minutes!  Zach Barth sent me a link to a disk image which I was able to use to run the game in DOSBox and in my 486. He asked me to try to copy the image back to the official disk, but the disk would not take a Format, giving a "Bad or Unusable Track 0 Error."  I used my degausser to reset the disk but the disk would still not be Formatted.  I was able to copy the image to a pre-formatted/blank disk I had and was able to run the game off the floppy using my disk.  The disk is a standard 80/2/18/512 HD format, so any image to disk program will work.  I use Demonlord's dsk2img in DOS.  Zach said he would send me out a replacement disk.  If the disk had worked I would have made a disk image of it almost immediately.  I received the second disk but it did not work either, giving the same type of errors as the first.


Instructions Page

So, how does the game work?  It works as well as you might expect a game of Solitaire to work.  I grew up playing computer solitaire almost exclusively with Microsoft Windows 3.1 Solitaire and the Klondike game included in Sierra's Hoyle's Official Book of Games, Volume 1.  The mouse pointer graphic in Shenzhen Solitaire is very similar to the mouse pointer graphic used in Sierra's games of the time.  Shenzhen Solitaire is inspired more by FreeCell than Klondike.  At first I had difficulty understanding the mechanics, being used to the simpler game.

Shenzhen Solitaire has three suits, red, green and black, with cards numbered from 1-9.  The number cards can be stacked on a card of another suit in descending order.  There are also four red, four green and four black "Dragon cards" which cannot be stacked onto other cards (with one exception)  There is a final card which is unique (it looks like a flower) and when uncovered goes directly to its own space on the completed portion of the deck.  The cards are dealt face up in eight rows of five cards.  

The object of the game is to put the suited and numbered cards into the right three stacks on the upper-right side of the screen.  When you uncover a 1 of any suit, it immediately goes to the finished stack, and the same for a 2 if a 1 of that suit is already in the stack and so on.  You can drag one or more cards from a descending (but not ascending) column of cards to any other pile if there is a card that can receive it.  Ideally you will want to make three stacks of 9-8-7-6-5-4-3-2-1  You can also drag cards onto any column that has been cleared of cards.  You can also drag any single card to one of the three free cells on the upper left side of the screen.  It would have been nice to have the Outline mode of Microsoft Windows 3.1 Solitaire.  

Dragon cards cannot be stacked onto numbered cards or other dragon cards.  They can be moved into the free cells or an empty lower column.  Once you have uncovered all four dragon cards, you can click on the appropriate button and character and all four will be stacked onto one of the free cells and removed from play.  Completing a game requires you to stack each of the three suits of Dragon cards.  Given that a card can start in any one of forty positions, you can play up to 16,000 games.  

This game is inspired by Mahjong., but the inspiration is easier notice in the Steam game.  The Red suit of cards is the "money suit" of tiles in Mahjong, the Green suit of cards it the "bamboo suit" of tiles in Mahjong and the Black suit of cards is the "character suit" of tiles in Mahjong.  Similarly, Mahjong has four Red dragon tiles, four Green dragon tiles four Black (White) dragon tiles.  Finally, Mahjong has flower tiles but this solitaire game has a single flower card.  Using the 640x480 16-color VGA mode would have helped to make the Chinese characters most distinguishable on the cards, but that may have had a negative impact on performance.

Shenzhen Solitaire - Steam Version (courtesy of Steam)

The game counts the number of wins and will automatically complete the game once you have exposed all the cards so they could be stacked onto the finished stacks.  There is no scoring system available.  The game can be quit by pressing the Escape key.  There is an instructions page in the game and a button for a New Game.  On the main startup screen, it will give you the randomized weather conditions of Shenzhen, which will change every time you start the game.


This is not the first new DOS game to receive a commercial release in recent memory.  That distinction would go to Retro City Rampage 486, which I purchased and reviewed back in 2015 :  RCR was a considerably more ambitious game and came with a much higher price tag of $34.99 compared to the $10.00 I paid (shipping included) for Shenzhen Solitaire.  RCR came with a larger box and more feelies.  Both games are ports of Steam games and both games feel like they would have been sold in the shareware section of a computer store with Shenzhen Solitaire looking to be in the budget rack of titles.  Maybe the next DOS release will be sufficiently ambitious to support sound cards, the last DOS game of the 21st Century to support sound cards was 2013's freeware Shaw's Nightmare.

Ultimately, for your $10 you get a DOS game that works in DOSBox and on real and modest hardware.  The game is easy to get running, challenging and a fun little time waster.  Despite its simplicity, if you like Solitaire and DOS games you should pick this title up while supplies last.


  1. I helped beta-test this, on my pile of old DOS machines. I confirmed it runs on a plain IBM PC, 8088, 640k, assuming a VGA card is installed.

    It (or at least the beta version) needs 357k free, so it'll even run on sub-640k machines if you can get DOS+mouse driver loaded small enough for that much space.

    The original version I tested didn't work on 386s, but after I tested it on a 286 they were able to narrow down where 386-specific code was being used and make it 8088-clean.

    I posted a clip of it shuffling on my IBM PC, it's hilariously slow:

  2. Check your Kickstarter mail for news about sound card support... the PC speaker bleeps and clicks are unchanged, but you now have the option of OPL3 background music :)

  3. I tried out the music-enabled executable today. Although it is only one track, the track is well-suited to playing a Solitaire-style game. Well done, it really improves the game.