You can easily put one light source per model, but not more.

SGL can only register one source.

The way around this would be to not use SGL, or maybe it's possible to use offsets, but I don't know.

I might compute lights offline for static lights, which should allow much better colors.

Maybe you could then use the SCU DSP to calculate the additions/substraction on top of static lights, but I think it would be slow.

I already tried with colors, it's super easy.

For this demo, I'm using "semi white", but you can put any color you want.

It's already using the 2 CPUs. As soon as you call slPutPolygon, it will look to see if the slave is busy, and if not it will transfer the command so that the slave handles everything.

I know for you, the easy way right now is use the SGL. For 1 Light Dynamic the SGL is very well implemented.

But my questions was for this data extract from

https://segaretro.org/Sega_Saturn/Technical_specifications#Graphics, for the theoretical maximum capacity for SS in this type of process:

DSP geometry processing: 188 MIPS (million instructions per second)

Fixed-point operations: 114 MOPS (million operations per second)

Additions: 85 million adds/sec

Multiplications: 85 million multiplies/sec

16-bit divisions: 5 million divides/sec

Geometry calculations: 114 MOPS fixed-point calculations

Vertex transformations: 2,400,000 vertices/sec

Polygon transformations: 1,800,000 polygons/sec

T&L flat lighting: 800,000 polygons/sec

T&L Gouraud lighting: 700,000 polygons/sec

Polygon rendering performance: Lighting

800,000 polygons/s: Flat shading, 32-pixel polygons

500,000 polygons/s: Flat shading, 50-pixel polygons

200,000 polygons/s: Gouraud shading, 32-pixel polygons

Texture mapping performance: Lighting

300,000 polygons/s: 32-texel textures

200,000 polygons/s: 70-texel textures

140,000 polygons/s: Gouraud shading, 32-texel textures