Skip to content
ZapskiRetro
Back to Blog
Game Development

Chuckie Egg on the Game Boy: The Port That Never Was

Retro Rachel
3 October 2026
9 min read read

Chuckie Egg never came to a Nintendo machine in forty years of ports. Now a fan has hand-translated the ZX Spectrum original to the DMG in assembly — no ROM included, because the game is still under copyright.

Chuckie Egg on the Game Boy: The Port That Never Was

Chuckie Egg on the Game Boy: The Port That Never Was

If you were playing games on a British home computer in 1983, you knew about Chuckie Egg. You didn't have to look for it. It was on the shelf, it was on a compilation six months later, and if you went to a school with a room full of BBC Micros, it was almost certainly on every one of them.

What you could not do, then or ever, was play it on a Game Boy. Because Chuckie Egg never came to a Nintendo platform. No Nintendo machine appears in its release records — not the DMG, not the Color, neither as a licensed release nor a first-party one. It has been ported to an absurd number of machines — Spectrum, BBC Micro, Dragon, C64, Electron, MSX, Tatung Einstein, Amstrad, Atari 8-bit, Amiga, ST, PC — and the Game Boy is a hole in that list.

What has existed since is homebrew, and only lately: a Game Boy Color beta called Chuckie DX GB that shipped without music, pause or a high-score table, and a more recent Color port built from the BBC Micro original rather than the Spectrum one.

As of this week, the Spectrum game exists on the original DMG. Not from Nintendo, and not from a rights holder. From a fan port, hand-written in Game Boy assembly, and published as source.

The game, for anyone who missed it

You are Hen-House Harry, and your job is eggs. Twelve of them, scattered around a single screen of platforms and ladders, with a countdown timer running the whole time.

There are piles of seed lying about, too. Collect them and you get points, and the timer stops for a while. But the hens want them as well — and when a hen eats a pile, the hen pauses. So the seed is both a clock and a trap, and clearing it off the board is you doing the hens a favour they didn't ask for.

Touch a hen and you lose a life. Fall through a gap in the bottom of the level and you lose a life. Ride one of the upward-moving lifts into the top of the screen and you lose a life, which is the one that catches everybody the first time. You start with five lives, and every 10,000 points buys you another.

Then there's the duck. For the first eight levels she sits in a cage, watching, and does nothing at all. Clear all eight and she gets out — and the levels repeat with no hens but a duck that flies at you and homes in, and does not care in the slightest where the platforms are.

After that the game keeps turning the screw. Both hens and duck. Then more hens. Then the same again, faster. Complete all forty levels and you arrive at "level 41", which is level 33 again — a fact the original's own source code will happily confirm.

Written by a teenager with a Saturday job

The story behind it is almost too good, and the details are well documented.

Chuckie Egg was written by Nigel Alderton, as a schoolboy, mostly during a summer holiday. He had a Saturday job at A&F Software's shop in Rochdale — serving customers, duplicating tapes, fetching bacon butties — and he was, in his own words, "the kid who made the tea." Accounts differ slightly on his age at the time: The Guardian describes him as a 15-year-old when he took the shop job, while Alderton himself has said he was "about 16 or 17" during the game's development.

He built it at home on a ZX Spectrum, under the working title Eggy Kong, and took a part-finished version in to show A&F — who published it. It came out in 1983 at £6.90, a price recorded by World of Spectrum. It peaked at number 12 in the multiple-formats chart that autumn, topped the BBC charts for a week in 1984, and went on to sell over a million copies across its many ports. A&F went bust in 1985.

Alderton has always been honest about what it was built from. He was addicted to the arcade machines by his newsagent, particularly Donkey Kong, and there was another cabinet called Space Panic. "Chuckie Egg is a cross between Donkey Kong and Space Panic, at the time my favourite game, so is really Space Panic 2," he told 80sNostalgia. Reviewers at the time spotted the Donkey Kong, apparently nobody spotted the Space Panic.

The reputation has held up. The Spectrum version placed 13th in Your Sinclair's readers' top 100, and GamesMaster ranked it 86th in 1996.

So what does it take to put it on a Game Boy?

This is the part we find genuinely interesting, because "port Chuckie Egg to the DMG" sounds like a weekend job and is not one.

The port is written in RGBDS assembly and targets the original DMG: 32 KB, no mapper. That's the same memory budget as the machine it's pretending to be a contemporary of, and it is not generous.

The approach taken was to work from disassemblies of the original Spectrum code rather than from scratch, and then translate the Z80 by hand to the Game Boy's SM83. The repository notes two reference disassemblies — one for logic, one for data — and is candid that the real cost of a port like this is not what you'd guess.

The port's own notes count the translation hazards. Eighty-eight indexed (IX+d) accesses — the Game Boy has no index registers, so all of them become HL plus an offset, and every one of them is in a drawing routine. Thirty uses of IXH/IXL as scratch bytes, which have nowhere obvious to live. Twenty-six IN A,($FE) calls, which become joypad reads at $FF00 because the Game Boy has no I/O ports. Twenty-three SBC HL,rr instructions, which do not exist on the SM83 at all and must become an ADD-based borrow macro.

The reassuring half of that table is what doesn't need touching: 74 DJNZ, 127 rotates, 16 LDIR, 71 LD (HL),n. And the shape of it matters — around 180 of the hazard sites sit in graphics code that gets replaced wholesale rather than translated. The game logic itself, the jump physics and hen behaviour and collision and eggs and scoring, maps almost one-to-one. The translation burden is much smaller than the 7,000-odd lines of Z80 would suggest.

There's one beautifully nasty detail in the middle of it. The original's death routines unwind the call stack with a sequence of POPs to get back to the game loop, rather than carefully propagating a flag. That behaviour ports cleanly — but only if the stack pointer lives in WRAM rather than HRAM, and only if you translate the pops literally instead of tidying them up.

The hardware has opinions

Two Game Boy limits shape the whole thing.

The first is the display. The DMG will only draw ten sprites on any one scanline. Not "ten per frame" — ten on a line, in OAM order, with everything after that simply not rendered. A single 16×16 sprite costs two entries per line, so Harry plus four hens is exactly ten and fits. Get the caged duck onto that same line and you want twelve, and something has to go.

The fix is OAM order, chosen deliberately: Harry first, then the hens, then the lifts, then the duck. The last thing drawn is the first thing dropped, so the casualty is the decoration rather than the player. The port's notes are honest that this is the only fix available, and that it stops being tidy once you get to level 25 — where the hen table runs all five birds and Harry plus five hens is twelve entries with no duck involved, so the bird that vanishes is the fifth hen.

They measured it rather than assuming: across the eight boot levels, peak usage is 8 of the 10.

The second limit is time. There's a fixed window each frame, and the port's notes record that the draw pass used to overrun it badly — finishing anywhere from 5,724 to 7,504 cycles into a 4,560-cycle window, which meant every level but the first was writing to video memory during the visible frame. It now finishes at 4,120 on all eight levels, with no tearing.

The duck, and three off-by-ones

The most interesting work is in reproducing behaviour that the original never documented, because the original never needed to.

Take the five laps. The obvious implementation is a lap counter, but that isn't what the Spectrum does. Its level counter is genuinely unbounded, and every rule that changes across a run is a threshold on that number: the duck is caged below level 8 and loose from 9; the hens disappear for levels 9–16 and return at 17; all five hens appear from 25; their speed drops from 33. Nothing is ever compared above 32, which is exactly why level 41 behaves identically to level 33 — it's arithmetic, not a sixth lap.

Getting there cost three off-by-one errors, all from the same mistake: reading a zero-based counter as one-based. None of them were visible over the first eight levels, which is precisely why they survived long enough to be interesting. The duck was coming loose a level early, and two other thresholds were simply unreachable.

Then there's the duck's own movement. The original's horizontal path branches on the sign of the velocity before it checks the level edge — and that isn't a stylistic quirk. On the Z80, the carry flag means opposite things depending on which way you're going. Read it the same way in both directions and the duck turns around on every single frame going left, gets thrown the wrong way, and pins itself against a wall. The vertical path has no such test, because it has a bound at each end instead.

And the collision box is asymmetric, which is the sort of thing you only find by walking every edge a pixel at a time. The port's check does exactly that.

Where it is

The port isn't hosted here, and that's deliberate: Chuckie Egg is still under copyright, held by the people who made it and their successors. We're not going to put a Spectrum game's assets on our servers and we'd rather say so plainly than pretend the question doesn't exist.

What the author has published is the port — the code they wrote — at github.com/Zapskii/GB-Chuckie-Egg. That repository ships none of the game's data: the tiles, sprites, level maps, fonts, music and text are the ten generated files it deliberately does not track, produced locally from a reference disassembly and rebuilt by anyone who clones it. The README is upfront that it's a fan port, not affiliated with or endorsed by the rights holders.

If you want to play it, you build it, and the instructions are there. It's play-tested in mGBA, and the whole thing is driven by a verification suite — sixteen targets, thirty-one assertions, all green — because when you're hand-translating forty-year-old assembly, "it looked fine when I tried it" is not a test.

Forty years late

There's something quietly satisfying about this one. Chuckie Egg was written by a teenager who wanted a game that never ended, on a machine with 48K and no sound chip, and it outlasted the company that published it by four decades.

Now it runs on the handheld that was never supposed to be able to do it, in a version Nintendo never made, put together by hand one instruction at a time from a disassembly. Not preserved in a museum case. Just running.

The source is at github.com/Zapskii/GB-Chuckie-Egg — the port is public, the game's data is not, and the README has the build steps. Clone it and a couple of make commands give you a Game Boy ROM of a 1983 Spectrum game that no rights holder ever put there.

Did you play Chuckie Egg the first time around — and where? BBC Micro at school, Spectrum at home, or somewhere with a tape that had been copied a few too many times? Tell us in the comments.

Related Articles

Game Reviews
GB Racer: Pseudo-3D Racing on the Original Game Boy

GB Racer: Pseudo-3D Racing on the Original Game Boy

Three tracks, two rivals, traffic, hills and a road that bends towards the horizon, on a Game Boy with no 3D hardware at all. GB Racer is a proper arcade racer in a 128 KB cart.

Zapski Retro
1 Nov 2026
5 min read