CPC Tennis is an unofficial fan port of Tennis, Nintendo’s 1989 Game Boy game, for the Amstrad CPC 664. It’s not a remake: the original Game Boy game code was translated instruction by instruction into Z80 assembly
Ball physics, player movement, the CPU opponent and the scoring rules all behave like the original. An automated test compared it with the real Game Boy game, step by step, over thousands of game updates: they matched exactly.The CPC’s mode 1 has exactly four colours, just like the Game Boy’s four shades of green. The whole Game Boy stadium is shown pixel for pixel, with no scrolling: the court, the crowd and Mario in the umpire’s chair.
“Made with AI”
This port was created with Claude, an AI model by Anthropic, working as a coding assistant. The developer directed the project, made the design and gameplay choices, and tested the game. The AI did the rest:
- it studied the original Game Boy code and wrote the tools that translate it into Z80 assembly;
- it wrote the Amstrad code, which covers the graphics, software sprites, sound, controls and menu;
- it built the automated tests that compare the result with the real Game Boy game.
I’m interested to know what people think about this, as a gamedev that spends months of my free time making CPC games to give away for free.
What do we expect from a game? And I guess specifically about this game, based on that disclaimer.
EDIT: I guess where I’m going with this question is related to this post: The Value of Things.
Not to spoil the text (I think it is a good read), but this is what I was thinking about:
If you just need a thing that does a thing, then its utility is what matters. I want the Washington Department of Ecology to use my very limited tax dollars as effectively as they can to keep the Pacific Northwest the enchanting natural marvel that it is. If they can do that better using AI, then by all means they should do so.
If you want to make a thing that has some emotional resonance or some connection to other people—whether that be a loved one, an audience, or humanity as a whole—then you don’t want to suck out any of its meaning.
Someone didn’t care to put the effort in to make it, so why should I put the effort in to download and play it?
This version uses the Plus range’s hardware sprites. The players, the ball and even Mario are drawn by the hardware, in colour and without flicker, while the CPU is free to run the game at full speed.
Features
- The original gameplay, translated directly from the Game Boy code.
- Hardware sprites: a red player against a blue player, a yellow ball, and Mario in colour in the umpire’s chair.
- Smooth, flicker-free display.
- The whole Game Boy stadium, pixel for pixel, in soft greens from the Plus’s 4096-colour palette.
- 4 difficulty levels and a 1-set or 3-set match.
- 2 fire buttons by default (hit / lob), just like the Game Boy’s A and B. There’s also a 1-button mode where the lob is automatic when your opponent comes to the net.
- Full scoring: FAULT, LET, OUT, DEUCE and ADVANTAGE calls.
- AY sound effects and a 16-colour title screen.
So the era of lazy Speccy ports is over, and the era of tasteless AI ports has begun.
It’s interesting to explore what AI as a tool can offer, although it would be wise to add a “label” to everything produced by AI to identify the true creator. Equating the effort of a scene Amstrader with the artificial creation of an AI agent just isn’t fair. At the very least, let’s start making a clear distinction.
Greetings @reidrac although it has nothing to do with the post, I wanted to ask you about that game you were working on a lot,
Yep, I agree it is off-topic in this thread. Thanks for asking, though.
I have the code, but it has gone cold. I have a nice menu system and I’ve implemented the rules of White Box (a retro-clone of the original D&D), mostly. Some overworld movement, and I was starting with the combat.
Unfortunately I need to rethink some bits because I was being “too smart” and I abused some tricks that work on emulators but not quite in real hw. The challenge is that I only have one 464 to test, so I have to drop that code and rethink how I’m going to do it.
It happened as well in Heart of Salamanderland; the first version I released had an issue that didn’t reproduce on my hardware, so I had to remove that code and replace it with a more conservative approach, sadly.
Anyway, TL;DR: is not cancelled, and I still want to make a RPG of sorts for the CPC, but I haven’t been working on it recently.
My next project for the CPC is The Quest for the Keystone, that is the sequel to The Heart of Salamanderland. I should have started it already, but I got distracted with an old project that I wanted to finish, so one for 2027.
One thing I’ve noticed is that those of us who don’t program games—like me, for instance—have a multitude of computers and extra hardware, whereas people like you who do develop them have very few machines; I’ve seen this on several occasions—it’s quite curious.
Regarding AI:
I love this port. It’s nicely made and it offers a chance to play the specific title on the CPC, which is nice. It works well. Why not like it?
At the same time, it’s just a port, and there’s a fair distance between this and @reidrac 's (or any other dev’s) projects. I don’t think anyone would ever consider comparing a port to the originality and charm that reidrac brings to his projects. They’re not even comparable, so I think it doesn’t make much sense confusing the two.
It is simple: I don’t have space. And arguably, time to play with the hw… because I’m making games! ![]()
I have a 464 with a few add-ons, and that’s enough. I would love to have a 6128 at some point, but with the retro bubble I can’t be bothered.
I’m not referring to the CPCWIKi forum, but rather to the author’s responsibility to point it out and not cause confusion. It’s difficult for those who aren’t into programming to detect whether it was coded by a human.
I loved it, and all the contributions are very welcome in my pouch
, especially with this technical fluidity.
I’m pretty much with @Devlin on the topic of AI created games. I’ve limited gaming time now, and I’d rather play games created by people who have taken the time to hand-craft their games, and know how to debug/improve them, rather than someone who has spent time putting prompts into Claude or whatever to make a game for them, that they have no idea how to debug or improve, beyond asking the AI to do more for them.
For me, the enjoyment of making games is about learning how to do it. It’s like music created by AI - it’s not about making something available to all (without any skill), it’s about the journey of creation, of pushing yourself.
I love listening to music, I went to see Queen’s Roger Taylor the other day who, at 77, is still creating new music and performing it live. I have no interest in hearing music created by AI from prompts as there’s little creativity or passion there, in my opinion at least.
Daniel Bedingfield (the less successful brother of Natasha) loves AI as “Bedingfield thinks AI can help children write pop hits”. ( ‘We have to adapt or die’: Daniel Bedingfield says AI is music’s future | Music | The Guardian ) I mean just no! Creativity is born from experience…
Right, enough ranting. I downloaded the 900-odd GX4000 converted games from CPC-Wiki and spent much of last night playing random games from it, and really enjoying most of them.
If the future of games is AI-created, I’m happy playing the hundreds and thousands of games already around that will keep me going till the end…
I agree with you, but identifying it is vital to decide whether to invest time in it. In the end, it seems that something that can significantly alter the experience might become indistinguishable in the future. It’s better to clarify if it’s “craftsmanship” or mass-produced by an AI like a McDonald’s hamburger.
Sometimes I walk past one and see people eating that food and even enjoying it. It’s a choice.
Is it? Really? If it’s a good game, it’s worth playing. If it’s not, it’s not.
Personally I find automated conversions pretty dull anyway, we live in an age you can just play the original and a port which doesn’t do something different doesn’t really seem worth doing.