colour emulation good
palette 0
display type raster
orientation horizontal
resolution 256x256
frequency 76.293945Hz
sound emulation good
channels stereo
players 2
nplayers 2P alt
controls joy
buttons 1
coin slots 3
cpu M6809 @ 1.25MHz
cpu M6809 @ 1.25MHz
cpu M6802 @ 3.6864MHz
cpu M68705 @ 4MHz
audio Speaker
audio Speaker
version added .029
last change(s) none since version .53
name size crc set flags sha1
za12  4096  4e40d8dc  zookeep    dd7923dcb55a2a1ae0f2029caf5a8904a9ebe8b1 
za13  4096  eebd5248  zookeep    ebe7f8c436bfefa4236f603fbcbd38d2f4cfd2bd 
za14  4096  fab43297  zookeep    daa5a780bc9f171da0f6db5319b1519caa09c6c9 
za15  4096  ef8cd67c  zookeep    f3a2e12ccfa45eb77c2a6e0d9cc0601b99273fd3 
za16  4096  ccfc15bc  zookeep    56ac6e89825fcde9cf7aeb5d0765a02f5474174a 
za17  4096  358013f4  zookeep    dd3fae69bf460f89c71e7c78d229dd86605c5950 
za18  4096  37886afe  zookeep    a0cc902b2d253466e21c4fbf9d3339069fe79ebe 
za19  4096  bbfb30d9  zookeep    bc6bd5525b159bee7b08b6967cd3088b7bd10fee 
za5  4096  dc0c3cbd  zookeep    8335cd91bbacc680a3a98a5242d4cb5a6f61b2b5 
za3  4096  cc4d0aee  zookeep    05c0025e96b432088b46100051a2c780e46b7457 
za6  4096  27c787dd  zookeep    1142790d875573d0c39d846aba4b06946fd2bc88 
za4  4096  ec3b10b1  zookeep    44303ab923d776052ca4d2d09a6a4315d67adc4b 
za7  4096  1479f480  zookeep    bd0e9eead0f1213eb3b9653c73257bc704346ab0 
za8  4096  4c96cdb2  zookeep    67e506462317d882c4e5c2e16318411d4958ac63 
za9  4096  a4f7d9e0  zookeep    a958b4d305bb397aa46d8fdab9dc7e472237ca11 
za10  4096  05df1a5a  zookeep    30797838c25cca038023c188cd9fa45277c4190d 
za25  4096  779b8558  zookeep    7312e63c23d92c9c52e93cc445a718bc8fe35a0a 
za26  4096  60a810ce  zookeep    d97e5acea0ef1c208f8e5e95024c83dd6bc9b028 
za27  4096  99ed424e  zookeep    e4e543dcb77f153aeb78904d11b95381d039299e 
za_coin.bin  2048  364d3557  zookeep    049d0759750c576187053306e07984b1e5877df7 
cabinet art
cabinet zookeep.png
marquee zookeep.png
control panel zookeep.png
flyer zookeep.png
PCB zookeep.png
additional information
info 0.29 [John Butler, Ed. Mueller]

Artwork available

  • The first time you run the game, it will ask the location. You can change the name using F5/F6 and F2, then F1 to proceed through all the configuration screens, or just reset (F3).
  • Keep F2 pressed to enter test mode, then F1 to advance to the next test.
  • There are no dipswitches, press F1 to enter the service mode, then F1=Next screen, F2=Next line, F5=Up and F6=Down.
  • 0.122u6: Changed M68705 CPU4 clock speed to 4MHz.
  • 0.115u2: Changed VSync to 76.293945Hz.
  • 10th December 2006: Mr. Do - We have Zoo Keeper bezel, cleaned up by Ad_Enuff.
  • 0.37b16: Changed M6802 CPU3 clock speed to 921600 Hz, M68705 MCU to 1MHz and palettesize to 1024 colors.
  • 0.35b4: Fixed cpu1 rom ($8000).
  • 28th February 1999: Nicola fixed Zoo Keepers from crashing on the first bonus life stage.
  • 0.35b6: Replaced M6803 CPU3 with M6802 and M6805 CPU4 with M68705.
  • 0.35b4: Added new maincpu ($8000).
  • 0.35b3: Nicola Salmoria added clone Zoo Keeper (set 2) and properly emulated the 68705 protection in Zoo Keeper. Added M6805 (2MHz) CPU4 and 3rd coin slot. Changed description of clone 'Zoo Keeper (set 2)' to '(set 3)'. Renamed (zookeepa) to (zookeep3). Known issues: Every time you start the emulation, you get a free credit. This is due to the 68705 based protection.
  • 0.33b7: Nicola Salmoria added clone Zoo Keeper (set 2). Changed parent description to 'Zoo Keeper (set 1)'.
  • 0.31: John Butler merged the Qix and Zookeeper drivers, they now also support rotation.
  • 0.30: Changed description to 'Zoo Keeper'.
  • 0.29: John Butler added Zookeeper (Taito 1982). Early attempt at a Zookeeper driver, based on the Qix one, which unfortunately doesn't work yet [John Butler, Ed Mueller]. ZooKeeper uses the same hardware as Qix (two 6809 CPUs). One CPU for data and sound and the other for video. Communication between the two CPUs is done using a 4K RAM space at $0000 which both CPUs have direct access. FIRQs (fast interrupts) are generated by each CPU to interrupt the other at specific times. The coin door switches and player controls are connected to the CPUs by Mototola 6821 PIAs. These devices are memory mapped as shown below. The screen is 256x256 with eight bit pixels (64K). The screen is divided into two halves each half mapped by the video CPU at $0000-$7FFF. The high order bit of the address latch at $9402 specifies which half of the screen is being accessed. Timing is critical in the hardware. The data CPU must have an interrupt signal generated externally at the right frequency to make the game play correctly. The address latch works as follows. When the video CPU accesses $9400, the screen address is computed by using the values at $9402 (high byte) and $9403 (low byte) to get a value between $0000-$FFFF. The value at that location is either returned or written. The scan line at $9800 on the video CPU records where the scan line is on the display (0-255). Several places in the ROM code wait until the scan line reaches zero before continuing.
  • 26th April 1993: Dumped Zoo Keeper (set 1).
Other Emulators:
  • HiVE
Recommended Games (Animals):


Zoo Keeper

Noah's Ark



Snake Pit

Video Vince and the Game Factory

Romset: 78 kb / 20 files / 43.0 zip
history Zoo Keeper (c) 1982 Taito America Corp..

Zoo Keeper is a superb, fast-paced arcade game in which the player takes control of Zeke the zoo-keeper. Many of the animals at Zeke's zoo are running wild and have captured Zeke's girlfriend, Zelda. Zeke must recapture as many animals as possible and rescue his sweetheart from the animals' clutches.

Zoo Keeper features 2 different, alternating play fields, with each level having its own task to complete; as well as a final 'bonus screen'. The three levels are as follows :

On the first play field, players must move Zeke around the outside of an animal enclosure, constantly re-building the enclosure wall that the animals are set on destroying. Any wild animals that are loose must be jumped over or the player will lose a life. The level's timer is represented as a fizzing fuse, and along this fuse are a number of bonus items such as beer or a net for catching escaped animals. When the timer's fuse reaches an item, it will appear on screen and can be picked up. Once the timer makes it to the word 'End', the current level is completed and play moves on to the next level. The bonus items that occasionally appear include mugs of beer, ice cream sundaes, clover clubs, watermelons, etc.

If Zeke manages to pick up a net, he will be able to capture the animals and put them back into the Zoo. The net will eventually disappear and the captured animals will try to escape once more by breaking through the enclosure wall. Zeke will have to continue building the wall around the Zoo until the time is up. At the end of the level, bonus points are awarded for every animal inside the wall. Animals found on this level are snakes, moose, camels, rhinos, elephants and a lion.

On the second, more difficult play field, Zelda is tied to a palm tree and Zeke must rescue her by jumping to the top of the screen via a series of moving platforms; dodging the coconuts thrown by a mischievous monkey. On each of the platforms, various foods and drinks can collected to earn extra points. Sometimes, one of the ledges will have a 'Free Game' sign that will grant the player a free credit. While Zelda is tied up, she says 'save me', and whenever Zeke gets knocked out by one of the deadly coconuts, she says 'Oh, no!' If Zeke makes it all the way to the top and rescues her, she says 'My Hero' and a bonus of 5000 points is awarded.

The first and second screens are alternated before the player finally reaches the third and final 'bonus screen'. Here, Zeke must jump over the herds of charging animals that are running from a cage at the foot of an escalator. Zeke must reach the escalator behind the animals' cage and make his way up to the next floor, where a second escalator - replete with more charging animals - awaits. Zeke must reach the top of the second escalator to rescue the trapped Zelda.

After Zeke has rescued Zelda on the final screen, the game begins again with an increased level of difficulty.


Upright cabinet dimensions : 67'' (170cm) High x 24'' (61cm) Wide x 30'' (76cm) Deep.

Upright cabinet weight : 280 lbs (126kg).

Prom Stickers : ZA03-ZA10 / ZV03-ZV10

Main CPU : (2x) M6809 (@ 1.25 Mhz), M68705 (@ 1 Mhz)

Sound CPU : M6802 (@ 921.6 Khz)

Sound Chips : Discrete

Screen orientation : Horizontal

Video resolution : 256 x 240 pixels

Screen refresh : 60.00 Hz

Palette colors : 1024

Players : 2

Control : 4-way joystick

Buttons : 1


Originally called "King Crab", Zoo Keeper was one of the few American-designed games that Taito released (with "Space Dungeon" and "Qix" being two others).

Here's a story straight from John Morgan, one of the programmers : "In 1982, Keith Egging was the Director of Creativity (or some weird title like that). He always had a human skull on his desk which opened up on a hinge and was filled with Hershey's kisses. One day a TV news crew came over to do some interview, and Keith showed them around. He took them back into our area and really played it up (feed them some pretty thick bull which they really ate it up). He took them to the farthest office of cubicles and said that this was DEEP THOUGHT - where all the heaviest thinking took place. Of course this was just made up (the office being picked for it's distance only), but hey, they bought it. The main programmers (me, Mark Blazczyk and Rex Battenberg) took off on this and other of Keith's tall tales and frequently made up whoppers about everything under the sun to one up each other with our far fetched stories. Pretty cool for those days.

Anyway, Keith came up with a weird game idea which I was going to program (back in those days there was only one programmer for pretty much all aspects of the entire game). His idea was to have a game where a crab would run around a rectangle on the screen. There were little eggs with faces on them that came out of the inside of the screen and would bounce off the rectangle and take bites out of it. When they went all the way through to the outside of the rectangle they would become tadpoles running around the rectangle edge. If the tadpole touched the crab it would be killed.

The crab would move around the screen and jump over the tadpoles, with it's claws opening and closing. To repair the wall damage where the eggs bit off chunks of the wall, you pressed a button and a thick line would shoot across the screen from underneath the crab and away from it (horizontally or vertically as appropriate). We were going to use the sound of castanets when this line was fired out - he really loved that sound.

This is about the stage where Keith's input finished, and the rest of the changes were almost entirely from my ideas.

Now, as a sidenote, we had no way to get art into the games. So I wrote some software that would allow you to use a modified control panel (with more buttons) so that you could create art (pixel by pixel) on the screen itself, complete with animation control. We hired a part time animator to use it to design the animals, complete with great motion for the time.

Secondly, we had to have sound effect and music. Tom Fosha (another programmer and a bit of a sick puppy in his own right) had been playing around with code to do some sound effects. Note that every sound sample was computer controlled (just like the graphics were). I looked at them and saw that they all either played with the volume of the samples (thus affecting the amplitude), or the duration in between the samples as they were output (thus affecting the frequency). I decided to write a single unified piece of code from scratch where you had two 24 byte buffers. One buffer held the volume levels for the looped sample (fairly traditional), and the second held the duration from each sample to the next (cutting a bit of new ground here). I then allowed each of these two waveforms to be independently controlled. You could smoothly morph a waveform from one to another (again pretty new for that time) or you could slowly add waveforms. You could avoid clipping of the signal (where a value is too positive and becomes negative etc.) or you could force it to occur (this had some really weird sounding effects). Since 24 samples is a multiple of 2, 3, 4, 6, 8, or 12, you could have samples which had different frequencies in the samples themselves. They made me a switchbox with 8 switches, so that I could try out code and use the switches to select among 16 voltage waveforms, and 16 frequency waveforms which combined with the particular controlling code I was trying. With trial and error, I came up with a zillion really weird sounds that I had never imagined. The ones I liked I kept, and that is where all of the sound effects came from in the game. They were all experimentally procedural.

For the musical tunes, Tom Fosha wrote a separate multi-tone player, and composed the tunes himself which were used for all the melodies in the game. He was really into jazz, and that came over beautifully in the game. OK, back to the game. I wanted to somehow allow you to shoot out more walls to hold in the eggs. So I put little locks on the screen randomly. When you shot a line which hit a lock, it would shoot two lines out perpendicular to your line. If any of these lines hit another lock, you would get a cascade effect. When enough locks appeared it could be pretty cool visually. But the problem was that so many walls evenly distributed could trap the eggs near the outside of the rectangle (instead of the middle) and they'd just bounce & eat their way out to the outside anyway.

So then I made the distribution of the locks more towards the four corners. This tended to make solid walls around the outer edge, which helped, but you could still trap the eggs near the outside and they'd still escape. That's about the time when I said that seeing a big crab get killed by eggs which turned to little tadpoles was a bit goofy. I suggested that we change the crab to a person who ran around the rectangle and where he ran he would lay bricks which would fill from the outside in. The brick laying would stop if there was an enemy there so that there would be a clear space for it to return to the center.

I suggested we change the eggs to animals which kept their form when they escaped, and would similarly kill the guy if he didn't jump over them. Since the guy was trying to keep the animals in then it seemed to make sense that he was a Zoo Keeper (I believe this was in a meeting with Ray Heidel, the Engineering Director). So we put a small cage in the center from which the animals escaped. I thought it would be cool to allow the Zoo Keeper to have a net which he used on the escaped animals which would put them back in the cage. And so I made the time line fuse which burned down, and along it were nets which would briefly give the Zoo Keeper this power. The actual art made the net look more like a frying pan (by accident), but that seemed pretty cool so I kept it and gave it an appropriate sound and effect when hitting the animals. I thought it'd be great to flash the entire screen for 1 frame when you did this. It had a pretty amazing subliminal effect on the excitement level.

In the original version, when the animals escaped the rectangle they would randomly decide whether to run clockwise or counter clockwise. This made it hard to survive since you couldn't predict their behavior if they escaped near you, and having roughly half of the animals running each way made it pretty hard to survive for long by jumping over them. So I decided that when the animal escaped, it would run in the direction away from you (where you were at that time). This way they wouldn't escape near you and run into you, so you'd have a lot of warning before they got you.

I made the reward for jumping over animals based on how many animals you jumped over. For each extra animal I roughly doubled the score. This continued for as many animals there were maximum in the game (16ish or so?, it's been a long time :-) So if you jumped a really massive number of animals you would get a gazillion points. But how do you get the animals to clump up for such a massive jump?

That's when I decided to remove the initial bricks around the rectangle at the start of a level. I delayed the initial animals escaping the cage, to give you time to drop down and start laying the wall as you saw fit. The trick was to run in one direction and cover just slightly over 50% of the rectangle with a wall and then just stop. This would allow the animals to immediately escape, but they'd always run away from you which forced them to all go in the same direction. And since they were in the same direction it was easier to survive, and since different animals moved at different speeds, they would tend to clump together periodically so you could wait for that to happen and then jump over a huge number of animals in a single jump - and voila - you could get huge scores!

Now, when the net came out, you would only want to knock in the animals that were running opposite to the direction of the herd. This you'd try to stand near a hole to force the escaping animals to run in the same direction as the herd.

This pretty much completed the game play of the initial level. It was really fun, but I wanted to have something more to break up the monotony. So I came up with the idea of the ledge screen. You started at the bottom and could jump up on the moving ledges to get to your girl and save her. She was help captive by a gorilla throwing coconuts at you which would kill you (yeah, a bit of inspiration from Donkey Kong was going on here). I think it was Keith who came up with the name of Zeke and Zelda for the Zoo Keeper and his lady. I decided to make the ledges come out in a pre-determined sequence to reward the experienced player in that they would learn their preferred sequence of jumps to get safely to the top. This level was pretty cool, but I wondered what else I could do.

So, I came up with the idea of the escalator screen (similar to the ledge screen but with a different game play layout). This time when Zeke got to the top Zelda would give him a kiss.

Now you could cycle between these 3 levels for as long as a person could survive. If they made it far enough to loop back to levels they'd already done, I'd just speed things up a bit each time. Eventually they wouldn't be able to survive. For added coolness, I made the last escalator level so that when you saved Zelda a curtain would draw down over both of you, and a whole bunch of kisses would be all that appear. I wanted to make the kisses go up and down but we thought that would be a bit too much :-)

Anyway, I got to be pretty good at the game and could survive longer and longer. I decided to add a visually frantic feel to the game at these levels by cycling the color of the outer background. This massive color cycling effect would slightly distort the screen image due to power blooming of the monitor. This really cranked up the adrenaline. I'd survive so long that I'd have the maximum number of animals out in almost the same direction and jumping almost all of them at once occasionally for some phenomenal score. This whole time I did this I was wrenching the joystick like I was going to break it off and the whole machine was rocking like the back seat in a drive in. I knew something was happening here.

Then I survived so long that I came to a ledge screen where the ledges had disappeared completely. Seems I found a bug. But the thrown coconuts were bouncing off of them even though they were invisible. So I gave jumping a try. Remember that the ledge sequence was completely predictable and I had gotten quite familiar with it. So I actually had a chance of getting to the top. That's when I decided to not fix the bug, but make it a feature (I guess the old saying "It's not a bug, it's a feature!" really did apply here). We were ready to test the game. I put in the needed diagnostics so the operator could control it. Since speed of the game was key to how long people could play, I made two operator speed adjustments. The first controlled the speed when a person initiall joined. The second controlled the speed when a person played for a long time. We put the machine out on test and I watched the players and timed them with a stopwatch. Then I tweaked these adjustments until they seemed optimal for fun and earnings.

The game went out in 1983 and was about the number three game of the year nationwide, which was quite good. Unfortunately, this was right at the time when the whole arcade market took one huge dive, so the game only sold a fraction of what it would have if completed just a year earlier. As Keith said, "The cash box is a cruel mistress! It is indeed.".

Shawn Cram holds the official official record for this game with 21,849,650 points on 06/15/2003.


Early machines had a bug in which the player could turn the machine off and on and get one or two free credits.


As time progresses, you can pick up items that will give you points. Among one of the items is a white mallet. When you get the mallet the background will turn blue for about seven seconds. Any animal you come in contact with will return to the cage. In round one, for example, where you have to tend to five elephants, the first three items are mugs of root beer, worth 120, 250, and 500 points; the white mallet, the last item, scores 1,000 points. When time runs out, the stage is completed, and points are scored for every animal that is still inside the wall. The six animals, in order of ferocity :

Elephant : 250 points.

Snake : 500 points.

Camel : 1,000 points.

Rhinoceros : 2,000 points.

Moose : 4,000 points.

Lion : 30,000-60,000 points.

When not tending to the wall, you can jump over the animals to score points :

One animal : 100 points.

Two animals : 500 points.

Three animals : 2000 points.

Four animals : 6000 points.

Five animals : 15,000 points.

Six animals : 30,000 points.

Seven animals : 60,000 points.

Eight animals : 120,000 points.

Nine animals : 250,000 points.

Ten animals : 500,000 points.

Eleven animals : 1,000,000 points.


* Zoo Keeper contains a little-known free game feature. You can go into option and set the 'Free Game Rate' to 99 to make it appear more frequently. If it's set to 0, it won't come out at all. The Zoo Keeper Flyer actually has a note saying that the free game feature maybe prohibited in some states! - The free game icon pops up on one of the platforms on the 3rd screen (coconuts). It comes out like one of the bonuses, but instead it says 'Free Game' in a little box. When it appears, it has it's own little tune too (and it usually pops up opposite of where you are, so if you are at the bottom of the screen, it will come out at the top).

* Use A Benefit Free Try : Start the game, build the first wall of bricks a bit without jumping and immediately crash into an animal. If you have never jumped before, you won't lose a life. The game will simply advise you that you need to jump over animals to avoid them and round 1 will start again from its beginning. Best of all, you get to keep the wall of bricks that you built a bit. Of course, this being the first level, chances are you don't exactly need the extra help - but hey.

* An Obscure Trick : On the coconut boards, when you jump onto the top ledge, you get some points. Jump off the ledge then onto it again; you'll get twice as many points. And again, for four times as many. The bonus keeps doubling until 300K per land. The best board to try this on is the board where the ledges are invisible. It's kind of hard to jump on then off, but so few coconuts are thrown that you have lots of room for error.

  • Designed by : John Morgan, Keith Egging
  • Programmed by : John Morgan, Rex Battenberg, Mark Blazczyk
  • Music and sound effects by : Tom Fosha
  • - PORTS -
  • * Consoles :
  • Sony PlayStation2 (2005, "Taito Legends")
  • Microsoft XBOX (2005, "Taito Legends")
  • * Computers :
  • PC [MS Windows] (2005, "Taito Legends")
  • - SOURCES -
  • Game's rom.
  • Machine's picture.
  • The Giant List of Classic Game Programmers, http://www.dadgum.com/giantlist/
  • Edit this entry at Arcade-History.com: http://www.arcade-history.com/?n=zoo-keeper&page=detail&id=3258&o=2
resource links view in MAWS
view in mini MAWS
view in CAESAR
view high score and replay at MARP
view in Progetto EMMA (Italian)
view game bugs at MAME Testers
view driver bugs at MAME Testers
view in arcade-history.com
view in KLOV
view in System16
view in The Arcade Flyer Archive
view in The Arcade Flyer Archive
view in VGMuseum Gamepics