Posts Tagged ‘VGA

14
Oct
20

Solder Runner for DOS

Today’s game, Solder Runner, was made by Sumware Software back in 1996. This is notable as it’s after the release of Windows 95 and was in a time of decline for games development for DOS. It’s kind of like Paganitzu, Chaganitzu, God of Thunder or Bloxinies, except the puzzles span multiple screens. It comes with a level editor and three episodes, although the third episode appears to be incomplete.

I originally tried playing this in Dosbox, but it seemed to cause issues with the game such as only being able to play the third episode despite selecting the first one to play. So I fired up an old PC, to run the installer you need to be running windows9x (or better), but once installed the files can be copied to a pure MS-DOS machine. In this case I copied the game to the old IBM thinkpad laptop and captured images and video using my epiphan capture device.

The game appears to use high resolution VGA graphics (640x400x16), which for the most part aren’t bad. I noticed that a few digital photos of circuit boards were used in places, which is interesting, but the images appear to be a bit noisy where they are used. Other artwork such as the tiles and sprites are reasonably well drawn, although it isn’t clear what the functionality of some items are just by looking at them. However you’ll learn what they are fairly quickly.

There is supposed to be some digitised sound, but I couldn’t get it to work for me. The standard PC sound isn’t too intrusive or annoying, so it’s acceptable in this case. The controls take a little getting used to as you need to press a direction key twice to move a space  when changing direction. It’s annoying at first but you get used to it.

The game is divided up into three episodes, each episode is one large level consisting of many screens. Puzzles vary in size from simple ones that fit in one screen to much larger puzzles that require back tracking or retrieving keys or solder beads. The very first large puzzle on the first episode has you circle around the same screens multiple times before you can collect everything you need and move on.

The static hazards are much like those in similar games. Some shoot at you and others block your path or offer a small puzzle element. Keys may be required for progression at times and you’ll almost certainly have to back track at times. This can make things a little tedious as screens do not reset, so you can end up traveling several screens with basically nothing to interact with when you return to fetch something you need.

The enemies are quite different to what you’d find in similar games, they represent different types of computer virus in the system. They move quite erratically, in a semi-random fashion that makes them difficult to shoot and predict. I think this has made it harder to implement good puzzles involving them, if they had a more predictable logical behaviour that differed depending on the enemy type then you could base some puzzles around them. Much like those you’d find in similar games. As it stands they are more of a nuisance that you have to avoid or shoot.

Apart from issues with dosbox there are some game mechanics that may cause you problems. Diodes in the level only allow you to travel through them in one direction, you’re automatically pushed in that direction if you move onto one and they are often laid out in chains. Your controls are not disabled whilst this is happening, and you can attempt to move or shoot whilst the diodes push you to your destination. This can result in you glitching into a part of the level you’re not prepared for, so best to keep your hands of the keys whilst moving through a diode chain.

Solder Runner was reasonably fun to play, but it has some flaws. It does do multi-screen puzzles reasonably well, just other games such as God of Thunder in particular do it better. It feels incomplete and unpolished in many ways, which is confirmed by the third episode, which has barely any content and is clearly incomplete. Bellow is a video with some commentary and game play.

01
May
20

Daymare for DOS

I found today’s game whilst playing random shareware I found on my F19 CD. Daymare is a dungeon crawler made by Jim Todd, originally it was made for the Atari ST, but was later ported to DOS in 1992. It was released as shareware with a sequel eventually being made.

The graphics are in VGA and are reasonable for the most part. It’s not as pretty as a more professionally made game such as Eye of the Beholder, but the dungeon is rendered quite well and the other artwork works well enough. There wasn’t any sound to speak of.

At first when I started playing the game I didn’t have much idea about how to play. It’s controlled entirely by the mouse so it wasn’t too difficult to figure stuff out, even though much of what you need to know isn’t in the instructions. There is a cluster of controls arranged in a grid of 8 buttons, and a section for storing and equipping items. Basic movement and attacking were easy to figure out.

Using items was a bit trickier, but I did figure out how to do it. For food items you pick them up with your mouse and click the item on the mouth. Most food items disappear, but the vials of water leave an empty vial after consumption. You can fill these empty vials at a well such as the one found in the starting area. Other items, such as the scrolls and the bag of holding need to be in the right hand slot of your inventory, clicking the diamond (with out starting a spell) uses the item.

Spells are cast by clicking the symbols around the diamond in the correct sequence for the spell, then clicking the diamond. The spells are revealed by hints left throughout the level, such as a readable item that tells you the softens spell. Signs and other text around the levels will provide other hints.

The game starts you out in a little courtyard with a few items around on the ground. You’ll find some water vials, some treasure, healing scrolls and a weapon. The treasure seemed pointless at first, but I found out that you gain experience (and levels) by putting it in the well. The water vials are quite useful as they restore some health in addition to thirst. Since they can be reused they are one of the easiest ways of restoring health. You’ll still need to find food to fill your hunger.

The first enemies I encountered were some worms and attack dogs that were tougher than they looked. It really helps to use the softens spell, as it increases your resistance to physical damage. You’re quite vulnerable at level 1, so I died a few times before I leveled up, but after that I only died if I had bad luck or went somewhere I wasn’t ready for yet.

I’ve played for a few hours so far and feel like I’ve only really scratched the surface. So far I’ve explored most of the first level and managed to find the bag of holding in a hidden section. There is a locked door I haven’t found any keys for yet and a section that kills me quickly, so I’m guessing there are some parts I’ll have to come back to when I’ve leveled up and found some keys.

I quite enjoyed playing Daymare once I got over the initial hurdles. There are a few quality of life issues, such as only having one save slot, not having an auto map and being forced to quit the game every time you die. However I still think it’s worth a download and play. I found the sequel on the authors website, however this version wasn’t available there, if you want to give it a try you can find it on dosgames.com.

This slideshow requires JavaScript.

02
Sep
19

Skunny: Wild West for DOS

Having already looked at three of the Skunny games you’d think I would have learned my lesson and avoided today’s game Wild West, featuring our not so favourite Skunny Hardnut. This entry in the Skunny series of games came out in 1994 and was made and published by Copysoft. With the previous games not being terribly good and expectations low for Wild West you’d be forgiven for thinking I am some kind of weird retro gaming masochist.

The story for Wild West isn’t as nutty as some of the others, Skunny is simply diverted to the Wild West on his way home from Rome to help his parents retrieve their missing sheep.  I am actually kind of disappointed as the nutty stories from previous games were quite amusing. No sticky nut pudding to be found anywhere, and who doesn’t like a sticky nut?

The VGA graphics are very much like previous games, they’re decent in their own way but not great either. It’s very much like Save our Pizza’s in style. I suspect it uses the same engine and has had new artwork made to fit the Wild West theme. I did notice one funny inconsistency, Skunny’s hat disappears when he bends down to pick up a crate, perhaps it falls off his head.

Audio is again like previous games, reusing many of the sound effects where they could. In general the digitised effects and PC speaker bloops are ok. There is only one track of music that loops constantly, so that gets a bit maddening after a while, although it’s better than the last game you’ll want to turn it off.

The keyboard controls are basically the same as they were in Save our Pizzas, although there are less issues getting around the levels and dealing with enemies. I still found that the game would completely miss pressing jump when using the keyboard.

Because the keyboard controls aren’t great I thought I’d try out using a game pad with the built-in joystick support. Back in the day this would have been uncommon, as most people had either an analog joystick (which isn’t appropriate for a platformer) or only a keyboard and mouse for input. It turns out using a gamepad solves the issue where it misses input for the jump button. I’d imagine that this may also help Save our Pizzas play better as well. Although the movement mechanics are still a bit janky, so it still doesn’t control well.

The game play is better than Save our Pizza’s for a few notable reasons. Firstly Skunny has a water pistol as his main attack, which means you’re much less likely to touch the enemies in the process of taking them out. When you are hit you don’t bounce backwards unless you touch an enemy. This significantly reduces how often you’ll be knocked into a hazard that kills you instantly, although it still happens. There are quite a number of health and ammunition pickups in the space that I played, so you generally can recharge.

Although the game play is improved I still found it to be frustrating to play. The enemy projectiles are generally impossible to dodge, just because they are fired so frequently.  Resulting in losing some health at every encounter with no way to avoid the damage.

The levels are set in a magical part of the wild west where everything is suspended on platforms in the sky, even the lakes and trains. Perhaps they mastered levitation and didn’t tell anyone. So basically most jumps are over a pitfall of some kind and any mistake at all is pretty much insta-death. So it’s better in the sense that you’ll get further into the game before you lose your mind.

I got far enough into the first level to discover that there are check points if you can make it far enough, mostly because using a gamepad made things a little easier. However after numerous attempts I couldn’t get any further just like the other games. I took some screen shots from the demo as I didn’t want to keep playing, and it shows some areas I couldn’t reach.

Like the other Skunny games there isn’t a terrible lot to recommend it, although I concede you may enjoy it if you have some nostalgia for Skunny. I downloaded the shareware version from the usual place, until recently you could still buy the registered version from the Copysoft website, but that seems to no longer be available.

This slideshow requires JavaScript.

09
Oct
18

Wolfenstein 3d for DOS

Todays game is very well known, and can be considered the grand father of the FPS genre. Wolfenstein 3d was released by id software in 1992. It was extremely popular, selling both in the retail and shareware markets, and received several significant awards. The engine was licensed out and resulted in a number of other games, some I’ve already covered such as Blake Stone and Corridor 7. It inspired others to make similar engines and games of their own such as Nitemare 3d and Ken’s Labyrinth. In this way it really spawned a whole generation of FPS games.

It wasn’t without controversy, partly because of the Nazi imagery used as well as the Nazi party anthem being used at the title screen. Because of this some rules were changed in Germany which resulted in the game and some other media being banned there until quite recently. It was also quite violent compared to contemporary games, although looking at it today it is comparably tame.

Today is actually the first time I’ve really sat down and played through a significant portion of Wolfenstein 3d. I’ve had brief encounters with the game in the past, but never really sat down and spent some time with it. I played through the entire shareware episode in a little over an hour total play time.

You need a VGA graphics card and at least a fast 286 machine. I’ve found that 3000 cycles in Dosbox (roughly a 20Mhz 286/386sx) is sufficient to run the game with the maximal screen size and a smooth frame rate. I quite like the art style, the UI elements are generally very minimalist in a pleasing way whilst sprites and textures are detailed and make good use of colour. It’s impressive in both an artistic and technical sense.

The sound effects are a mix of digitised and adlib sound effects, which generally sound quite good. Although it seems that it can only play one digital effect at a time, which can result in odd sound when in a noisy situation such as lots of nearby enemies. The adlib music is quite good and adds quite a bit of atmosphere to the game. Although I was startled to learn the music used at the title screen is the Nazi party anthem.

There are three different options for control, keyboard, mouse or joystick. I used the keyboard for my play through, mainly as I did it on my macbook. The keyboard works fairly well mostly, but sometimes doesn’t have the aiming precision sometimes. Using the mouse and keyboard works much better, but it wasn’t an option for me this time.

The game play is pretty simple, basically you search a maze like level for the level exit. Along the way you have to gun down enemies, pick up ammo and health as needed, and collect various score items. There are some locked areas which require a key, which are usually found simply by exploring a level.

Because of their maze like structure and how many areas look similar it can be easy to get disoriented and totally lost. There is a simple maze solving algorithm that can help, simply stick to walls on either the left or right hand side. This works well for the majority of the levels, only slipping up where there is a loop in the maze.

Guns are an important part of every FPS game, Wolfenstein 3D has 4 basic weapons. The knife, pistol, sub-machine gun, and a rapid firing chain gun. The best weapon for most use is the sub-machine gun as it’s fast firing, but not so fast as to chew up all your ammunition. The chain gun tends to eat ammunition too fast, so is only really useful when fighting the bosses or a large group of enemies. The pistol and knife are basically starter weapons for when you’re low or out of ammunition.

So how does Wolfenstein 3d hold up today? I’d say it holds up fairly well, although there are some issues. The game play works very well, but does get repetitive after a while. The levels are generally well designed, with secrets to find and plenty of bad guys to shoot, however many areas look the same so it’s easy to get lost. I also found I had to wander empty levels after killing most bad guys but having to retrieve a key or find a locked door. On the other hand the guns are still fun to use, it still very atmospheric, and blasting through the levels is still quite fun. Later episodes shake things up by adding new enemy types and are more difficult.

You can play Wolfenstein 3d online at the internet archive, or you can get a copy on steam or GOG.

This slideshow requires JavaScript.

27
Jul
18

Dungeons of Noudar 3D for DOS

Today I’m looking at another homebrew game, Dungeons of Noudar 3d made by Daniel Montiero. It’s a simple dungeon crawler game with a similar visual design to something like Eye of the Beholder. After playing with it a while I think it’s in need of some polish, but is really quite impressive from a technical standpoint.

Hardware support is VGA only for the graphics. The main 3d landscape is rendered in a large window and it features fairly detailed geometry. Compared to the basic 3d dungeons that many RPGs had, it offers quite a bit more visual detail. Whilst it doesn’t render fast enough to be comparable to any FPS games, it works quite well for this style of game, which typically doesn’t update the screen as often. The sprite artwork is nice at a distance, but when enemies or items are up close it can be very blocky.

Hardware support for basic sound is included for PC speaker, Adlib and the OPL2LPT. I tried both the PC speaker and Adlib whilst playing using Dosbox. I found that the sounds varied in pitch and length a little, perhaps because of the emulation, it usually coincided with a delayed screen update. The sound effects are fairly basic, and although they sound fine you don’t miss anything by having them turned off. Unfortunately you can only select the sound support with a command line parameter.

The game play consists of some basic puzzles and some bad guys to fight, both within relatively small levels. Puzzles basically involve finding ropes to cut that open doors. Generally this just requires you to explore the level. Enemies roam the levels, the first ones you encounter don’t seem to be very active, but after a few levels they will chase and attack you. Later enemies require you to use specific weapons in order to damage them. If you encounter them without the weapon required you’re generally boned. Luckily you will find the right weapons if you explore the levels thoroughly.

There are some issues which make it more difficult to enjoy. I got stuck on the 3rd level, the prison, and even though I had cut all the ropes I couldn’t find where I had to go next. In a few other instances I reached the level end without having the chance to fully explore the level and find all the items. I think some kind of visual indication on the exit door/location would help greatly, both so you know when you’ve found it and so you don’t accidentally finish a level before you’re done exploring.

I think it could also use the capability to save and load a game in progress, or continue from a check point after death. Not having these features really limited how far I could progress as I’d have to start from scratch each time I started to play. I’d have liked to get further into it, as it was getting more interesting at the point I got up to.

Issues aside Dungeons of Noudar 3d whilst a bit slow to start is an enjoyable experience. The 3d renderer is fairly impressive in it’s capability, even if it’s not fast and the basic game mechanics do work and play quite well. It’s not a deep experience by any means, but it you enjoy dungeon crawlers this might be worth a download. You can get it from his website here.

This slideshow requires JavaScript.

21
Feb
18

MagiDuck for DOS

I was browsing the web recently when I stumbled across DOS Haven, A site devoted to home brew games made for MS-DOS machines. This is a welcome and quite unusual find as there isn’t much of a home brew scene for these machines as opposed to other platforms like the C64 or MSX which have a larger and thriving home brew community.

Though not featured on DOS Haven I found today’s game from a news item there. MagiDuck is an action platform game made for the IBM PC. It was made by Toni Svenstrîm with the latest beta release in 2016. It has especially low system requirements, only needing an 8088 @ 4.77 Mhz, CGA and 256K of RAM which covers pretty much almost any MS-DOS machine except those with MDA displays or small amounts of memory. The low system requirements come about partly because of the graphics mode used, which is a hacked text mode that allows for 80×50 with 16 colours similar but not the same as that used in Paku Paku.

Although the graphics are quite blocky due to the low resolution, the artwork is of quite high quality. Magiduck, the enemies and the levels are all colourful and cute. On the technical side the game animates quite smoothly on even minimal hardware and even manages vertical scrolling. Because early PCs didn’t have sound cards only PC speaker is supported, and the sound is fairly good for that device.

The game controls and responds quite well in a way that most PC platform games do. Although the key layout is a little different, z and x are used for jump and fire, it works just as well as the usual control and alt key layout. Magi jumps and moves as you’d expect, jumping around is fairly straight forward, which is good because the levels are quite vertical. Each level is basically a tower, you start at the bottom and work your way up to a star which represents the end.

I quite like the level design, like the sprites they are colourful and fun. There is some challenge, but not so hard as to be painfully difficult. Whilst they are quite narrow (a limitation of the engine is seems) there are a number of paths of varying difficulty through each level. You can spend time collecting treasure and keys from all the paths for extra points, or speed run the game for a time bonus.

Magiduck is technically very impressive and is very well designed and built. It does have some minor flaws, but generally they don’t impact getting enjoyment out of it. The hardware it can run on is very impressive, the original IBM PC was not considered capable of scrolling colourful graphics until later machines got much more powerful and the first EGA/VGA cards became common place. This game can do it on an original PC @ 4.77 Mhz and a CGA card. If you own an old machine this is certainly something you should give a try, you can find it on IndieDB here.

This slideshow requires JavaScript.

26
Sep
17

Framed for DOS

Today’s game is an obscure adventure platform game made in 1994 by a two man company named Machination. The story is fairly simple at the beginning, you’re a journalist who has been framed and you find yourself in jail. The first and shareware scenario is set within the jail, your job is both to escape and find any information about why you’ve been framed. The game play is unique as it’s an inventory based adventure game but with conventional platform style movement and environment.

The game engine supports VGA graphics, but only 16 of the 256 colours, which is exceptionally odd. Obviously this affects the art style which doesn’t appear to be as polished as contemporary games usually were. I don’t think the art work is bad, it does do a good job of setting the scene of a dreary prison space. There isn’t much animation apart from moving objects such as the enemies and the player, but the animation is nice enough and the level scrolls quite nicely.

Sound Blaster, Ad Lib and PC speaker are all supported. The sounds are fairly basic, with simple sounds for actions like jumping, walking and being hurt. There is basically no music in the game other than the funeral march when you die and a short ditty at the title screen. Generally the game is fairly quiet except for the sound of your footsteps and the occasional boing noise when you jump. This fits fine with the prison scenario where a more eerie atmosphere is appropriate.

The movement controls are fairly reasonable, although you press up to jump I didn’t have any trouble with movement generally. The other controls, which are used mostly for interaction with items, aren’t quite as easy to use. There are many keys that are spread around the keyboard. Luckily you don’t usually need to use them whilst dodging a hazard, so it’s tolerable after you get used to them.

The platforming aspect of the game works fairly well for the most part, but has issues. Most enemies come in the form of guards, fireballs and spiders. You can’t harm any of them until you get the gun, so you have to dodge them where you can. The guards roam the levels in predetermined patterns, so you can exploit that to get past them usually, although there are some tight spaces where you basically have to take a hit to get past. The fireballs are emitted from broken pipes and will travel even when off screen. In one case a long corridor has one at the end, and you can have to dodge fireballs with no warning they are coming. The spiders look very innocuous being quite small, they basically wander around a small area looking like a background object. A small group blocks one particular space I found annoying.

The scenario is basically one larger level representing the prison and it’s hallways connected to smaller levels by doors representing each section like the dining area. Items can generally be found in the area you’d expect to find them, such as food being found in the dining area. I found that there wasn’t much food (or other health items) around, so whilst the hazards are fairly sparse it can be quite difficult to stay healthy. I had hoped that the food in the dining area would respawn or that you could get healed in the medical area but neither was the case.

The adventure aspect of the game revolves around inventory item puzzles. The trouble is the story is very sparse, so I spent my time wandering around gathering random items as I found them, not sure of their purpose. There are a few missed opportunities to tell part of the story as you have to trade items with some prisoners, they don’t talk or request the item they want, and don’t say anything other than thank you when you deliver. The other prisoners are the only NPCs I’ve encounter so far.

If I used one word to describe Framed it would be sparse. The main part of the level has long sections to travel between areas that could easily have been condensed. This makes both the platforming and adventure aspects less interesting as you spend a lot of time just walking around. If they had wanted to make the platforming more prominent, more challenges and health pickups would have gone a long way to making that work. Had they wanted to emphasize the adventure aspect they could have added more detail to the story through more dialogue, NPCs, and some prison activity to make the situation seem more active and to guide the player.

That being said I don’t think it’s a bad game. The engine is well made and there is a lot to do within the scenario as a whole, just there’s a bit of walking around in between. After watching a play through it was clear how much I’d missed simply because there was basically no guidance on where to go next, no goals and no indication of what was required to reach them. A guide or walk through would probably make your experience better if you chose to give it a go. There isn’t any way to get the registered version anymore, but you can get the shareware version from the RGB Classic DOS games website.

This slideshow requires JavaScript.

04
May
17

Snow White’s Voyage for DOS

Today I’m looking at a platform game called Snow White’s Voyage, originally released by Alive software back in 1996. Of course by this time Windows 95 had changed the scene quite drastically, with most developers having abandoned developing games for DOS. The game has fairly low system requirements, needing only a 386 and about 512K conventional RAM, much less power than many late DOS machines had. So this game is a little unusual when put in the context of when it was released, it’s like it time travelled by about 4-6 years.

The story isn’t quite the same as the fairy tale, the game is divided into 9 episodes with only a few being related to the original story. Each episode begins with a short blurb of story text and a legend of the hazards and treasures to collect for points. The game-play itself doesn’t really rely on the story, so you can ignore it if you wish.

The graphics in Snow White are ok, nothing spectacular, but they do the job. I can totally sympathise, as Alive Software is a one-man software company, I can understand how hard it can be to generate attractive graphics by yourself. The graphics engine seems to be programmed reasonably well, as it appears it would work well on retro hardware like a 386. Although there was one peculiarity, the bottom of the previous level appears to be the ceiling for the one you are playing! Fortunately entities on the previous level don’t seem to be active up there (avoiding slow-down). I’m guessing all the levels are stored together in a single lump per episode. This could have been avoided by restricting the vertical scrolling range, or by only using the tile data from the current level. Apart from looking a bit odd the only problem it introduces is restricting your jump height where it need not be.

Digitised sound and OPL music are supported for the Sound Blaster, and some music with basic sound effects for the PC speaker. The music is implemented quite well, although there are no original tunes, I think the introductory tune is from The Marriage of Figaro and reminds me of a Tom and Jerry cartoon where the music was also used. The music resets every time you die or start a new level, which can sound a bit strange, otherwise it’s generally well done. The sound effects are fairly understated but fairly decent for what they are. PC speaker on the other hand is probably best avoided, it’s not the worst I’ve heard, but it’s not the best either.

The keyboard controls follow a fairly standard layout for platform games of the time, so getting your fingers on the right keys isn’t too hard. Basic movement works well enough but I found the jumping mechanic a bit of a problem. Basically your horizontal movement in a jump is about half as fast as your normal speed. The main problem this creates is difficulty in jumping over obstacles that otherwise shouldn’t be all that hard to avoid. There are also some problems navigating up some tiles that are intended as ladders.

Luckily the game has an easy difficulty option that removes some of the more difficult hazards making it much easier (but still challenging) to progress. The enemies aren’t too hard to dodge, but they are deadly accurate with their projectiles which are difficult to dodge. The worst ones being low flying birds that basically drop un-avoidable eggs on your head. Part of the issue is you basically have to restart the level every time you are hit, making any hit at all very punishing. It’s confusing because you have hearts that are like hit points/health in other games. Fortunately the level doesn’t reset when you start again, so bad guys stay dead if you’ve killed them.

Luckily the levels are quite short, so you’re never sent too far back, but being so short and limited in height has meant there is not that much variety in the map design. I did only get to play the first episode however as I played the shareware episode, and I’ve noted that later chapters do change things up a bit. In the lake for instance the game becomes top-down as you guide Snow White around on a raft, in the later stages of the game you play as Prince Charming, so there’s some variety, just not so much in the shareware chapter.

From what I’ve played Snow Whites Voyage is ok for what it is, but clearly it’s not a classic like say Commander Keen. Alive Software are still around, and you can buy this game in a bundle with some of their other legacy titles for about $5 USD which honestly isn’t too bad if you have any nostalgia for their games.

This slideshow requires JavaScript.

 

07
Mar
17

Space Nightmare for DOS

I’m not much good at shoot’em up games, which is why today’s game, Space Nightmare has a completely appropriate title. It was made by a Canadian company called Microdem in 1994. It is odd for a DOS game as it uses some high resolution graphics and what appears to be Mode X using 16 colours. Like most shooters it has a fairly throw away story about aliens coming to steal our copper, but what’s really important is you get to blow stuff up!

Graphics support is unusual for a DOS game of the period. The menus are drawn at 640x480x256 if set to use SVGA and 640x350x16 for standard VGA cards. In game it appears to use 320x240x16 which is essentially Mode X, but it appears to be only using 16 of the 256 normally available colours in that mode. The game does perform quite well mostly, with some of the smoother scrolling I’ve seen in game. There is some slow down occasionally which seems to happen when the game is loading an image for displaying the first time. You notice this especially when it loads larger images like those for the end of level boss. This might not happen on actual hardware, I was playing using Dosbox.

Artistically the graphics are quite nice and colourful, for EGA. There is dithering in some of the graphics because of the limited number of colours used. This could be a technical issue with the graphic engine, perhaps it only supports a 16 colour mode? Did they limit it for speed? I’m sure they could have gone with 256 colours and not compromised too much on speed and being in Mode X it should have been easy. So the decision to use 16 colours puzzles me.

Sound comes from either the PC speaker or a Sound blaster card. I couldn’t test the PC speaker sound unfortunately because the game disables it as an option if it detects a sound blaster, which I guess is fair. The music is ok, although the tracks all sound fairly similar they do fit the theme of a shooter like this one. Sound effects are also ok, although weapon sounds get louder as you upgrade them. I suspect it plays the sound once for each shot in air, so once you’re upgraded it adds the sound from many shots together. It could have been implemented better, but you can turn down your volume as needed to compensate.

When starting the game you get to choose between one of three ships. Dynamite only fires forward, but is one of the faster ships, upgrades simply add more projectiles. Blaster is slower, but upgrades add increasing amounts of spread shots which can effectively blanket the upper screen with bullets. Lastly Cancer fires forward only at first, but upgrades add shots going backwards and to the sides equally. I found Cancer the most successful as it allowed me to combat foes coming from more directions much easier.

The enemies are mostly mobile air units of some type. They will often fire a burst of bullets directly at you, so dodging is absolutely necessary. I found this quite hard as the hit boxes for your ships are quite large. You can end up being trapped by several barrages and can’t avoid taking a hit. This wouldn’t be a problem if being hit didn’t take _all_ your power-ups, which leaves you very vulnerable. Whilst you can take more than one hit before dying, this is severely punishing.

I found this game quite hard, I couldn’t get past the second level after many attempts. This could just be because I’ve never really been all that good at this type of shooter. I think that having more than one life, and not losing your power-ups when hit would have made this much more playable for me. People who are fans of vertical shooters (and are better than me at it) will probably find some fun, as long as you’re good at dodging.

This slideshow requires JavaScript.

31
Jan
17

Creating a benchmark: part 6 problem solved!

Quite some time ago, in fact more than a year ago now, I was working on a basic series of benchmarks to test the comparative performance of the Borland Graphics Interface (BGI) versus a hand coded graphics library. I ran into a problem with my hand coded library not working on some of my real hardware. I ran the tests on a Pentium MMX @ 200Mhz and a 386sx @ 20mhz, it ran fine on the newer machine whilst failing on the older one. I figured perhaps I was overloading the older graphics chip.

So coming back to the problem today with a renewed sense of determination, I did some reading. There happened to be a book in the university library about programming VGA graphics, and I noted that all of their code only copies single bytes to graphic memory at a time, I was copying 2 bytes (a 16 bit word) at a time so wondered if that might be the issue. I changed it and the program still crashed almost immediately.

After some tinkering and some basic math I worked out that sprites being drawn near to the bottom of the screen were the cause of the problem. The test algorithm actually allows sprites to be drawn partially obscured by the right or bottom edge of the screen. On most VGA cards this isn’t a problem, but the trident chip in the 386sx didn’t like any pixels being drawn outside of the visible frame buffer. After writing some basic clipping into the sprite routines the program worked all the way through.

I’ve tested 3 different programs on two different real machines (as opposed to emulation). BGIbench is the original program that uses the provided graphics libraries that came with Turbo Pascal, I’ve used it in conjunction with the VGA256 BGI driver. VGABench is the initial lazy implementation of a hand made graphics library, it’s implemented entirely in pascal and isn’t optimised at all. Lastly is VGABench2 which is an optimised version of VGABench using assembly where necessary, and in the case of line drawing a better algorithm. All three programs were coded and compiled with Turbo Pascal 6.0 and use the same basic test code.

Each program performs 7 tests based around primitive functions found in the BGI. Each test counts the number of primitives that can be drawn over a period of 30 seconds. VGABench doesn’t have a function for drawing circles so it has no results for that test. The tests in order: put-pixels simply draws individual pixels a random colour. Filled Boxes draws solid coloured rectangles in a pre-defined pattern. Circles draws a number of concentric circles in a per-determined way. Random lines does what you’d expect, drawing lines randomly. Horizontal and vertical lines are similarly obvious. Finally the sprite test draws a 10×10 bitmap at random locations on the screen.

At first glance it’s pretty obvious that optimised, hand written code is significantly faster on the Pentium, particularly for filled boxes and sprites where VGABench2 achieves roughly twice the output to the screen. I managed a five-fold increase in the rate of drawing circles, which is impressive as circles are the hardest to draw. The first VGA Bench however is not really much better than the BGI and in some tests actually performs worse. You’ll note that the put-pixel tests all come out fairly close in terms of results, this is because there is little to optimise there.

I suspected that the reason VGABench2 performed so well is because the code copies 16 bits at a time instead of 8bits. I tested this out by changing it to copy 8bits at a time and found it was still faster than the BGI, but by a much smaller margin. VGABench2 copying 16bits yields about 156k sprites, but modifying it to copy 8bits yielded about 80k compared to BGI which achieves around 73k sprites. The first VGABench demonstrates how important optimisation is. It copies data 16bits at a time, but doesn’t even achieve the performance that BGI does, managing around 68k sprites.

386sx-20

The picture looks quite different on the 386sx machine, with the performance looking much more even with a few exceptions. The BGI seems to perform comparatively well across most categories only lagging behind in drawing circles, filled boxes and sprites. My first lazy implementation, VGABench seems to lag behind in pretty much everything except drawing filled boxes, which barely outperforms the BGI.

The results for VGABench2 are good, but not as good as on the Pentium machine. Line drawing is basically the same speed as the BGI. Filled boxes achieves about twice the speed, and circles about 5 times the speed, but the sprites are comparatively slower at about 1.5 times the speed. The explanation for the performance of sprites and filled boxes is interesting and is related to how the test is implemented. The filled boxes are drawn in a deterministic way, a grid of 10×10 sized boxes, the sprites are distributed randomly. Filled boxes end up being drawn pretty much always on even addresses, and sprites will be drawn on even and odd addresses around the same amount. This affects speed because of something called word alignment.

The 386sx, 286 and 8086 processors have a 16 bit data bus, which means the processor can access 16bits at a time. The memory is organised as a bunch of 16bit words, so when accessing 16 bits on an even address only a single memory word is accessed, and when a 16 bit access needs an odd address, two memory words are required. This means doing 16bit reads/writes on odd addresses are half as fast as on even ones, in fact they are about the same speed as an 8 bit transfer.

In beginning to sum up the series, it’s important to remember why I started it at all. Basically I remembered hearing many people discouraging use of the BGI mostly because it is slow compared to hand crafted code. The tests I’ve done have confirmed this, but I feel that it’s also shown how a lazy (or poor) implementation can be even slower. My optimised code is faster, but took a lot of time and effort to create and is missing many features that the BGI provides, such as support for other graphics cards, clipping, and other graphics primitives that are more complicated. I can see why many people without the time and know-how would have found it easier to simply use the graphics library provided.

That being said, hand written optimised code certainly has an important place as well. It was pretty fun and challenging to try and make something faster, even though I almost certainly didn’t get my code anywhere near as fast as more proficient assembly programmers. Also it’s hand optimised code that made many PC action games possible at all. Gaming on the PC would be very different without the hardware guru’s that could squeeze amazing things out of basic hardware. Writing this has made me reconsider my stance on sticking with the BGI for my platform game, I probably won’t gain a lot of performance, but I may be able to get it to work on older hardware as a consequence.

Code and binaries are available from the pascal downloads.




Enter your email address to follow this blog and receive notifications of new posts by email.


Mister G Kids

A daily comic about real stuff little kids say in school. By Matt Gajdoš

Random Battles: my life long level grind

completing every RPG, ever.

Gough's Tech Zone

Reversing the mindless enslavement of humans by technology.

Retrocosm's Vintage Computing, Tech & Scale RC Blog

Random mutterings on retro computing, old technology, some new, plus radio controlled scale modelling.

ancientelectronics

retro computing and gaming plus a little more

Retrocomputing with 90's SPARC

21st-Century computing, the hard way