In an interview with the developers of the Crazy Taxi game for the GBA, they mention that they were able to achieve 3D graphics with a pure-software 3D rendering engine that they called Rush:
It is a full 3D poly engine – so it is ideal for most types of game. This engine allows us to develop games in 3D on the handheld, providing a much closer gameplay and visual experience for the player to those found on the next-gen consoles and PC. It includes an open plan environment meshing system which allows use of huge landscapes (such as the cities in Crazy Taxi), only limited by cartridge size. Also – as it is a software renderer we are not restricted to the GBA’s sprite limitations – so we can have more sprites on-screen, including very large sprites.
This engine allowed for impressive graphics on a rather limited system without hardware 3D:
How did it achieve such high quality graphics on a GBA system? From what I know, many objects are just sprites of objects from different view angles (such as the cars and the green arrow), and the audio quality is arguably not much better than that of Pole Position. It also understandably had a very poor framerate that would sometimes get as low as 8 or so fps, at least judging from memory. But even all of these tradeoffs do not seem sufficient, at least intuitively, to provide the graphics it has.
How did the Rush 3D engine work, and how did it achieve such impressive graphics?