I've decided that it's time to develop some Game Gear software. [smile]
I'm going to start with a conversion of the BBC Micro game "Fire Track" which I have previously converted to the TI-83 Plus graphing calculator. It's a simple vertically scrolling space-shooter.
I'll be developing in my own Latenite Z80 editor - by knocking out a few batch files, I'm ready to compile to SMS\GG compatible binaries.
One problem I have is remembering memory locations and port addresses, so I'm writing an include file (gamegear.inc) of the most useful values and routines.asm that will contain a bunch of core reusable routines.
Fire Track was all about superbly smooth scrolling backgrounds, so it makes sense to start this project by developing the scrolling background bit. However, to get anywhere with that I'll need some background tiles to work with - fortunately, I've got my 8x8 background tiles from my TI-83 Plus version. Sadly, they were in black and white so I had to colour them in and tidy them up a bit:
When developing for the TI-83 Plus, memory is a prime concern so I had to keep the number of tiles down. With the Game Gear version, I can hopefully expand the number of tiles, and maybe even make them more... colourful. [rolleyes] Fire Track only had two levels that it repeated, one after another, with a simple palette switch and more enemies to make them "different". In my Fire Track 2 I made it randomly generate levels from a series of "chunks", so I'll probably implement that here.
A very simple program was written to initialise the VDP (video display processor), copy over the pallete and tile data and display all the tiles one after another. The result:
The "tilemap" screen shows the displayed tilemap (by changing VDP registers I can set the position of that clipping rectangle). The top-left screen is what the player would see, the top-right screen is the tile memory. The black shapes just under half way down are NOT intentional, and every test program I have written that writes to the "names" buffer (the area that indicates which tile to display on the grid - a sort of map) corrupts that area. In the emulator it doesn't make much difference, but on hardware it completely fudges everything else.
Ah yes, hardware. How can I test this on a real Game Gear?
First I need a working Game Gear. Cue two half-broken consoles, a screwdriver and some rearrangement:
...and I have one working Game Gear and one completely buggered one. [grin]
I'm using Tototek's GGPro cart to test on hardware.
Using a fairly odd piece of Windows software and a bit of fiddling in the BIOS you can send Game Gear ROMs to the cartridge. It even supports multiple ROMs (it adds a nifty little boot menu). Anyway, in this case I'm only really interested in "ftrack.gg" - and here we go:
Magic! Well, it doesn't appear to do much, I'll give you that. But it works...