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, Z-sort, 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:
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 high-res 194x, R-Type, Turrican or Gianna Sisters optimized for the Vampire.