The ZX Spectrum version of Carrier Command has 3D rendering, while the Commodore 64 version, despite a greater amount of RAM, was inferior in comparison. You open the in-game map and there's Google Maps right there. Maybe the faster Z80 was the reason? Also, I've read 6502 and 6510 have no division, which you need for perspective division. This is not strictly a problem though, as you can have a lookup table of inverses, I suppose, and just multiply with these.
1 Answer
The Spectrum version of Carrier Command was for the ZX Spectrum 128 only (reference: Carrier Command (World of Spectrum)). This was probably crucial in being able to port it so well.
Neither the Z80 nor the 6502 had division (or multiplication) commands.
Another reference for the Spectrum port being 128 KB only is the review from Crash magazine, issue 63.
Addition: In Retro Gamer magazine, issue 111, pp46--51, there is an article "The Making of Carrier Command". Here it says that the Commodore 64 version was added to the agreement (between developers Realtime Games and publishers Rainbird) later to replace the cancelled PCW version, and that development of the C64 version was outsourced to developers Source. Meanwhile, the Z80 versions (Spectrum 128 and Amstrad CPC) were developed in-house by Realtime Games, and the company already had considerable expertise in 3D on the Spectrum, having developed Starstrike II and ported Starglider.
rem:quot
, compare, and subtract). Not super fast, especially for 16-bit integers on an 8-bit machine (it needs a compare instead of a single-bit test, so you need more full-width operations than multiply via shift-and-add, but otherwise pretty similar). How can I multiply and divide using only bit shifting and adding? shows how in C and x86 asm.