4 ms·
The Amiga had planer graphics modes, while the PC/VGA cards had chunky mode (in 320x200x256 color mode). It means that, to set the color of a single pixel on t
by joakleaf 7y ago
The Amiga had planer graphics modes, while the PC/VGA cards had chunky mode (in 320x200x256 color mode).
It means that, to set the color of a single pixel on the Amiga, you had to manipulate bits at multiple locations in memory (5 in 32 colours), while for the PC each pixel was just one memory location; In chunky mode you could just do something like: videomem[320*y+x]=158 to set the pixel at (x,y) to color 158, where videomem would point directly to the graphics memory (at address 0xa0000) -- It really was the simplest graphics mode to work with!
If you just copied 2D graphics (without scaling/rotating) the Amiga could do it quite will using the blitter/processor, but 3D texture mapping was more challenging because you constantly read and write to individual pixels (each pixel potentially requiring 5 memreads/writes on the Amiga vs. 1 on the PC).
Doom's wall texture mapping was affine, which basically means scaling+rotation operations were involved. The sprites were also scaled. Both operations a problem to the Amiga.
As software based 3D texture mapping games became the new hot thing in 1993-1997, the Amiga was left behind. Probably wouldn't have been a problem if the Amiga has survived until the 3D accelerators in the late 90s.
This is quite well described elsewhere. Google is your friend if you want to know more! :-)
- rusk 7y agoAlso Amiga didn’t have hardware floating point whereas DX series of PCs in the 90s did. Essential for all those tricky 3D calculations and texture maps.
- tialaramex 7y agoNo. Hardware floating point was _Quake_ Quake has software full 3D which runs appallingly if you can't do fast FP, it's targeting the new Pentium CPUs which all have fast FPUs onboard, it runs OK on a fast 486DX but it flies on a cheap Pentium. Doom is just integer calculations, it's fixed point math.
- rusk 7y agoI didnt know Doom was all integer ... quite a feat. In the general sense though the lack of floating point, as well as flat video addressing seriously hampered Amiga in the 3D ahem space. EDIT I just remebered there is definitely at least one routine I know of that performs calculations based on IEEE 754 - “fast inverse square” or something. That could be at the root [badum] of my confusion vis-a-vis Doom ...
- lmm 7y agoThe famous "fast inverse square root" was in Quake 3.
- rasz 7y agoDuke3D Build engine did use FPU for slopes :O http://fabiensanglard.net/duke3d/build_engine_internals.php http://fabiensanglard.net/duke3d/build_engine_internals.php Luckily you already needed at least DX2-66 to play the game comfortably so not many people stumbled onto this.