Markus Horbach
Posts 35 28 Nov 2017 18:37
 "the expectations need be realistic" unrealistic dreams lead to disappointment. (ASIC, ARRIA, ...)"The VAMPIRE is excellent for doing 2D games." I totally agree. With SAGA, 128MB RAM, high memory bandwidth and a DMA Controller, you can create 2D games with good visuals. Lets do the 2D math: 1280x720x16bitcolourx60Hz = 105 MB/s You need to read and write every pixel, so 210 MB are needed. Gunnar showed 660MB/s in Benchmarks, no bottleneck and a lot of room for sound, game logic, etc. Enough room for pixel overdraw and fancy effects. "a lot more 3D power than a PLAYSTATION one did had." CPU wise i agree, the Vampire will run circles around the PS1 CPU. 3D graphics, i doubt if the Vampire could match up with the PS1. The PS1 has a discrete texture rasterizer. not very accurate but fast. I doubt that the Vampire can catch up the pixel throughput. Or does SAGA include something similar (in future)? The 586er PC only could catch up the PS1 with a voodoo1 card. Lets do the 3D math: 800x480x60fps = 23 Mio Pixel If you only use 4 clock cycles per pixel, you need 92 MHz. 4 clock cycles for vector calculations, Zsort, texture mapping, illumination, even if only 1/4rd of the screen is only covered with polygons, you have only 16 clock cycles, @30fps 32 clock cycles. Tough target to achieve or did i make a mistake in my calculations ? The math to rotate only one vector point is like this: angle wx,wy,wz vector(xo.x,xo.y,xo.z) double a = Math.toRadians(wx); double b = Math.toRadians(wy); double c = Math.toRadians(wz); double x = COS(b)*(xo.x*COS(c)  xo.y*SIN(c)) + xo.z*SIN(b); double y = COS(a)*(xo.y*COS(c) + xo.x*SIN(c))  SIN(a)*(xo.z*COS(b) + SIN(b)*(xo.y*SIN(c)  xo.x*COS(c))); double z = COS(a)*(xo.z*COS(b) + SIN(b)*(xo.y*SIN(c)  xo.x*COS(c))) + SIN(a)*(xo.y*COS(c) + xo.x*SIN(c)); How many clock cycles would a hand tuned 68080 ASM code take for his ? You may use float instead of double. You need 3 vectors to describe one triangle, group 4 triangles out of 4 vectors to form a solid body, sort the triangles to avoid pixel overdraw, fill the triangles with a colour. Look at Quake1, a masterpiece on the Vampire. Look at the resolution and fps, compare to the screenshot at the beginning of this thread. I prefer a highres 194x, RType, Turrican or Gianna Sisters optimized for the Vampire.
