|
|
|
|
s t a t u s r e p o r t |

IntroductionOver the last couple of months, I've been working on porting Payback to the Game Boy Advance. For those who are new to Payback, it's an advanced Grand Theft Auto style game with full 3D graphics and very varied gameplay. The GBA is coping remarkably well with the complexity of the game. My target is an average of 15 fps, but right now I'm getting anything from 10-18 fps with the following features implemented:
OptimisationsThe game was originally developed with a 16MB 68040/25 in mind, so squeezing it into the GBA's 384K of RAM has been a real challenge. Most of the data is kept in ROM with key routines put into the machine's 32K of internal RAM for maximum performance. Because Payback's maps are too big to be put in RAM and can be modified, an unusual compression system had to be implemented for the GBA version. The maps were split up into sections and all the sections were put into ROM. Then, when the player chooses a map, the table that converts coordinates into section references is put into RAM. If the map is changed then the appropriate section is copied to RAM, modified and then the table is adjusted so that it points to the modified section in RAM rather than the original in ROM. Since some sections are, by chance, the same as each other this also reduced ROM usage by allowing the same data to be reused. All of this is completely transparent to the player - it just seems like a continuous great big map. The GBA version uses the game's "rotating view mode" which was originally developed for 200Mhz+ PowerPC machines and supports different viewing angles. Good performance was achieved by heavily optimising the code and by adapting it to the GBA CPU's strengths (conditional execution, self-modifying code and bit shifting) and avoiding its weaknesses (floating point maths and divisions). Thanks to these optimisations and the extremely fast texture mapper mentioned above, the GBA version of the game goes faster in rotating view mode than the 680x0 version did in normal (non-rotating) mode on a similarly specced processor. GameplayOf course, Payback isn't just an impressive engine and will also feature some of the most complex and involving gameplay yet seen on the GBA. I plan to write more about this once I've got that part of the game working. [Note: The next status report is now online here.] However, in the meantime you can find out more about the other versions of the game here. In particular, you might be interested to read the What The Press Said page. If you want to be notified when this site is updated then please join our mailing list. James Daniels (james.daniels@apex-designs.net)Apex Designs (www.apex-designs.net) Please feel free to email us with any questions, suggestions or enquiries. We do not yet have a publisher for the GBA version of Payback. |
![]() ![]() ![]() ![]() |
| Middle age is when we can do just as much as ever - but would rather not. |