Colecovision development - Mowleco
Last updated on February 10, 2012, 8:40 by Sebastian Mihai
Mowleco is a lawn mowing game. That's right, lawn mowing. This is inspired from real life. The winter of 2011-2012 has been quite mild over here, and green grass is showing. This got me thinking about when I will have to start mowing the lawn again.

You control a red lawnmower (modelled after my own red lawnmower), and your task is to mow all the grass! There are two dogs around the house as well. Get too close to them and it's game over!

In terms of technology, the dev kit was pretty nice. Its packed-in tile editor is a rare sight, and I welcomed it. Editing tiles and backgrounds is very easy. The dev kit requires sdcc (a C compiler), and you can find this in the Downloads section. One thing I found really strange is how long it takes to compile a program. Mowleco took about 40 seconds each time I compiled it, and it's not even that complex. Not a huge price to pay, but it is somewhat annoying.


rom - the Mowleco game rom. Plays in a Colecovision emulator
emulator - the Virtual Colecovision emulator

source code - the Mowleco source code. Requires z80 dev kit and sdcc. A simple, yet pretty complete game which should help you start your own Colecovision homebrew projects!
dev kit - the z80 Colecovision dev kit. It requires sdcc. I installed mine in C:\z80. It also contains an emulator, so you don't need to download one separately.
sdcc compiler (patched) - patched version of sdcc (see Developing your own section below). Should be installed in C:\Program Files
sdcc compiler (original) - original version of sdcc (see Developing your own section below). Should be installed in C:\Program Files


Developing your own

Installing the dev kit takes a few steps. You have a choice of two sdcc packages. One is already patched, and should work out of the box, if installed in C:\Program Files\. The other is the original packages, as distributed on its site. Choose one of them, and follow the steps below:

- download z80 dev kit. Unzip to C:\
- download sdcc. Unzip to C:\Program Files
- add C:\Program Files\sdcc\bin to your PATH system variable
- run patchsdcc.bat (from the dev kit)

Development notes

- project directories must be directly under C:\z80
- before Linking, click Default, to select the default link libraries
- to create graphics, use icvgm303.exe, found in C:\z80\tools\Graphics\ICVGM. To get them in your program, use Export, with RLE compression
- .dat files inside project directories can be opened with ICVGM

- when editing tiles with ICVGM, I recommend that you do not touch the Sprites area to the right. After doing so, my program stopped compiling
- Compile All step can take a LONG time (takes up to 40 seconds for Mowleco...). My hunch is that the compilation time increases exponentially with the number of non-blank tiles you have drawn
- ignore Linking errors "Could Not Find crtcv.lnk". This type of error didn't seem to make a difference for me
- sometimes you have to click Link twice in order to build the rom using the most up to date version of you code
- when I added a font, my programs wouldn't compile anymore, and did not report any errors. If your game stops compiling after adding some tiles, consider reducing the number of total tiles.

Featured in Retro Gamer issue 106!

If you use the materials on this page, or any other page on this web site, you do so at your own risk. They are provided "as is". No warranty is provided or implied. I neither guarantee that the materials will work, nor that they will not be harmful in any way.

Electronic circuits - CMOS buffer

Electronic circuits - driving higher current loads through parallel port

Electronic circuits - interfacing a Nintendo NES from Snowdrop OS

Electronic circuits - 3-bit current buffered DAC

Electronic circuits - stepper motor driver controlled by Snowdrop OS

Electronic circuits - parallel port interface

Snowmine - a Minesweeper-like game for Snowdrop OS (in x86 assembly)

Storks - a matching game for Snowdrop OS (in x86 assembly)

Electronic circuits - interfacing with a 16x2 LCD via parallel port

Electronic circuits - square wave vs. sine wave (audio differences)

Electronic circuits - Catch That LED!

Electronic circuits - parallel port light show

Electronic circuits - the Annoizer (555 speaker circuit)

Intellivision development - Hotel Bunny

Coverage of my projects

Interviewed in the Retro Gamer magazine

My homebrew cartridges

ZX Spectrum development - Husband Chores (in Z80 assembly language)

No Snakes! - a multiplayer game over serial port

Sega Dreamcast development - Overbearing Burgers

Snowdrop OS - my operating system from scratch, in assembly language

libzx - ZX Spectrum game programming library (Z80 assembly language)

Compact Pong - game in C# for the Pocket PC (Windows Mobile 2003)

TOTP (time-based one-time password) authenticator in C# (.Net)

aSMtris - Tetris in assembly language (x86, 16-bit)

Balanced Diet (GBA) limited edition

Gameboy Advance development - Balanced Diet

Atari 7800 development - Poetiru

Arcade ROM hacking - Knights of the Round translation

PocketStation development - Pocket Worm

Sega Game Gear development - Burgers of Hanoi GG

Pokemon Mini development - Mini Cookie

Magnavox Odyssey2 development - Red Green

Sega Dreamcast VMU development - Raining Squares

Nintendo GameCube development - Mama Bear Puzzle

Nintendo Wii development - Groundhog Puzzle

Sega Saturn development - Saturnade

Atari Jaguar development - Jagmatch

Sega CD development - Blackjack CD

Nintendo 64 development - Don't Be Square

Commodore 64 development - Tube64

Sega 32x development - Eight Queens

WonderSwan (Mono) development - Swan Driving BW

WonderSwan Color development - Swan Driving

Animal Keeper - a JavaScript and HTML5 Canvas game

3DO development - Space Invaders Invaders

Sony PlayStation development - The 11th Power

Sony PSP development - Newton Voyage

Nintendo DS development - Geoincursion

Gold of the Kingdoms - an XNA/C# homebrew game

Blue Elf 2 309-in-1 JAMMA PCB - troubleshoot controls not working

Fractals in JavaScript and HTML5 Canvas

Angry Video Game Nerd (AVGN) theme song on the Gameboy Advance

Novice calligraphy - Gothic hand, with letter guide

Video compilation of my classic console homebrew games

Seven segment display circuit with the 4511 decoder and the 4029 counter

A simple Atari 2600 joystick tester circuit

555 timer and 4017 decade counter - traffic lights circuit

Catch That LED! - an electronic game circuit

Capacitor study circuit

BlackBerry PlayBook development - Sheepish Bearings (Native SDK, OpenGL)

Neo Geo Pocket Color development - NGCollector

Neo Geo development - Neo Thunder

Atari 5200 development - Shooting Gallery

ZX Spectrum development - simple input/graphics example

Vectrex development - Scalar Ownage

Nintendo Virtual Boy development - Real Danger

Gameboy Color development - Burly Bear vs. The Mean Foxes (GBC version)

Sega Master System development - Burgers of Hanoi

Colecovision development - Mowleco

TurboGrafx-16/PC Engine development - Alddee

Atari Lynx development - Catkanoid

Nintendo NES development - Invaders must die!

Atari 2600 development - Snappy (batari basic)

Super Nintendo development - Bucket

Gameboy Advance development - smgbalib library

Airplane Vegas slot machine

Sega Genesis development - Gen Poker

(2004) Project One - first university game programming club project

Gameboy development - Burly Bear vs. The Mean Foxes

(2006) RGB Overdose - university programming contest entry