Zst = Msz △ X = a △ Y = c △ Xst = b △ Yst = dXst, Yst, Zst: Screen screen start coordinates △ X, △ Y: Screen screen horizontal coordinate increment △ Xst, △ Yst: Screen screen vertical coordinate increment
From the above formula, the calculation formula of the display coordinates (X, Y) when both the 3-axis rotation of the scroll screen and the screen screen are rotated is as follows.
X = kx (Xsp + dX · Hcnt) + Xp Y = ky (Ysp + dY ・ Hcnt) + Yp
However,
Xsp = A {(Xst + △ Xst ・ Vcnt) −Px} + B {(Yst + △ Yst ・ Vcnt) −Py} + C (Zst−Pz)
Ysp = D {(Xst + △ Xst ・ Vcnt) −Px} + E {(Yst + △ Yst ・ Vcnt) −Py} + F (Zst−Pz)
Xp = A (Px−Cx) + B (Py−Cy) + C (Pz−Cz) + Cx + Mx
Yp = D (Px−Cx) + E (Py−Cy) + F (Pz−Cz) + Cy + My
DX = A ・ DX + B ・ DY
DY = D ・ DX + E ・ DY
Xst, Yst, Zst: Screen screen start coordinates △ Xst, △ Yst: Screen screen vertical coordinate increment △ X, △ Y: Screen screen horizontal coordinate increment A, B, C, D, E, F: Rotation matrix parameters Px, Py, Pz: viewpoint coordinates Cx, Cy, Cz: Center coordinates Mx, My: Translation amount kx, ky: Scale factor Hcnt, Vcnt: HV counter value
VDP2 reads each parameter from the rotation parameter table stored in VRAM for each line, calculates Xsp, Ysp, Xp, Yp, dX, dY using the above formula, and uses the result for each dot. Find the display coordinates (X, Y). The scale factor kx and ky normally use values read from the rotation parameter table, but you can change the values for each line or dot by using the coefficient table.