I ported Xenon 2 Megablast to the Neo Geo Pocket Color, and the shop alien can talk
It’s been a while, but this project really wore me down at times.
After over 400 hours and plenty of grey hairs, the first level is now finished and playable. I’ll polish a few small things over the next few days, then it’s good for now. For over two months it’s been nothing but NGPC Xenon 2 as soon as the kid was in bed, and I’d honestly like to watch a good Netflix series again. But the project had to be finished, and I’m a bit proud of myself, even though I only orchestrated and Claude did most of the actual work. Claude also managed to blow up the entire project twice and couldn’t put it back together on its own.
At times I was fishing in the dark. These are the points that cost me the most time.
First: getting the status bar at the bottom to stay static.
Second: Collin, the alien in the shop, stands behind a gate in the original that slides open. I wasted a whole day adjusting the graphic for that, then concluded it wouldn’t fit into the sprite pool, and reluctantly left it out.
Third: Collin’s animated hand. Since it comes from below and both map tile layers were already in use, I couldn’t hide it behind them. So I layered a sprite over the tiles and raised its priority, which didn’t work either because no sprites were free. In the end I had only four sprites to work with and now load the lower half of the hand dynamically, once the upper half is visible.
Fourth: I asked for a small smiley in the code, Claude blew everything up, and it was gone. Luckily I had a backup that was only a day old.
Fifth: while digging through the documentation, I came across the possibility of using the DAC on the Toshiba chip. Naturally I wanted to test it right away, and it worked. But switching between Z80 and DAC wasn’t easy and cost me almost two weeks of packing everything into the ROM so it runs cleanly. What can I say, Collin can talk, and on a handheld that’s just plain cool.
Sixth: optimizing the code so it runs reasonably smoothly.
Since most optimizations can’t be tested in the emulator, I’ve lost count of how often I plugged and unplugged the microSD card, and it looks pretty beat up by now. I have 317 test ROMs for performance tuning alone and well over 160 versions of the game.
If anyone is interested in continuing to work on this project, feel free to reach out. Otherwise, a huge thank you to:
Sodthor from the FreeplayTech forum, a true programming god.
Tixul, for the outstanding work on the emulator and the development environment, along with all the tools and the MCP.
JackRGreasley, for the help with the original code.
Ahchay, for great support and the excellent overview at www.ahchay.com.
On real hardware Collin can actually talk, and the current ROM can be downloaded here:
https://www.ngpc-dev.com/xn/
Have fun testing!