aboutsummaryrefslogtreecommitdiff
path: root/backends/platform/ps2/GsDefs.h
diff options
context:
space:
mode:
authorMax Horn2006-07-06 21:44:48 +0000
committerMax Horn2006-07-06 21:44:48 +0000
commit1d8d9f5510dc5f574e926bd6fadb9d20337daede (patch)
tree5cdcf6c8a233159776be9d90f3f39885222f65eb /backends/platform/ps2/GsDefs.h
parent9269ebe9f5a281f452594f1e8108e31c88a398fb (diff)
downloadscummvm-rg350-1d8d9f5510dc5f574e926bd6fadb9d20337daede.tar.gz
scummvm-rg350-1d8d9f5510dc5f574e926bd6fadb9d20337daede.tar.bz2
scummvm-rg350-1d8d9f5510dc5f574e926bd6fadb9d20337daede.zip
Moving remaining platform/backends code, as previously threatened
svn-id: r23380
Diffstat (limited to 'backends/platform/ps2/GsDefs.h')
-rw-r--r--backends/platform/ps2/GsDefs.h226
1 files changed, 226 insertions, 0 deletions
diff --git a/backends/platform/ps2/GsDefs.h b/backends/platform/ps2/GsDefs.h
new file mode 100644
index 0000000000..65dec5e2a6
--- /dev/null
+++ b/backends/platform/ps2/GsDefs.h
@@ -0,0 +1,226 @@
+/* ScummVM - Scumm Interpreter
+ * Copyright (C) 2005-2006 The ScummVM project
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * $URL$
+ * $Id$
+ *
+ */
+
+#ifndef __GSDEFS_H__
+#define __GSDEFS_H__
+
+#include "sysdefs.h"
+
+// Gs2dScreen defines:
+
+#define PAL_NTSC_FLAG (*(volatile uint8*)0x1FC7FF52)
+
+#define GS_PMODE *((volatile uint64*)0x12000000)
+#define GS_CSR *((volatile uint64*)0x12001000)
+#define GS_DISPFB1 *((volatile uint64*)0x12000070)
+#define GS_DISPLAY1 *((volatile uint64*)0x12000080)
+#define GS_BGCOLOUR *((volatile uint64*)0x120000E0)
+
+enum GS_CSR_FIELDS {
+ CSR_SIGNAL = 1 << 0,
+ CSR_FINISH = 1 << 1,
+ CSR_HSYNC = 1 << 2,
+ CSR_VSYNC = 1 << 3,
+ CSR_FLUSH = 1 << 8,
+ CSR_RESET = 1 << 9
+};
+
+#define GS_SET_PMODE(readC1, readC2, alphaSel, alphaOut, alphaBlend, alphaFixed) \
+ ((readC1) | ((readC2) << 1) | ((alphaSel) << 5) | ((alphaOut) << 6) | ((alphaBlend) << 7) | ((alphaFixed) << 8))
+
+#define GS_SET_DISPLAY(width, height, xpos, ypos) \
+ (((uint64)(height - 1) << 44) | ((uint64)0x9FF << 32) | \
+ ((((2560 + (width - 1)) / width) - 1)<<23) | \
+ (ypos << 12) | (xpos * (2560 / width)))
+
+#define GS_SET_DISPFB(frameBufPtr, frameBufWidth, psm) \
+ (((frameBufPtr) / 8192) | (((frameBufWidth) / 64) << 9) | ((psm) << 15))
+
+#define GS_RGBA(r, g, b, a) \
+ ((r) | ((g) << 8) | ((b) << 16) | ((a) << 24))
+
+//DmaPipe defines:
+
+enum GsRegs {
+ GPR_PRIM = 0x00, // Select and configure current drawing primitive
+ GPR_RGBAQ, // Setup current vertex color
+ GPR_ST, // ...
+ GPR_UV, // Specify Vertex Texture Coordinates
+ GPR_XYZF2, // Set vertex coordinate
+ GPR_XYZ2, // Set vertex coordinate and 'kick' drawing
+ GPR_TEX0_1, // Texture Buffer Setup (Context 1)
+ GPR_TEX0_2, // Texture Buffer Setup (Context 2)
+ GPR_CLAMP_1, // ...
+ GPR_CLAMP_2, // ...
+ GPR_FOG, // ...
+
+ GPR_XYZF3 = 0x0C, // ...
+ GPR_XYZ3, // ...
+
+ GPR_TEX1_1 = 0x14, // ...
+ GPR_TEX1_2, // ...
+ GPR_TEX2_1, // ...
+ GPR_TEX2_2, // ...
+ GPR_XYOFFSET_1, // Mapping from Primitive to Window coordinate system (Context 1)
+ GPR_XYOFFSET_2, // Mapping from Primitive to Window coordinate system (Context 2)
+ GPR_PRMODECONT, // ...
+ GPR_PRMODE, // ...
+ GPR_TEXCLUT, // ...
+
+ GPR_SCANMSK = 0x22, // ...
+
+ GPR_MIPTBP1_1 = 0x34, // ...
+ GPR_MIPTBP1_2, // ...
+ GPR_MIPTBP2_1, // ...
+ GPR_MIPTBP2_2, // ...
+
+ GPR_TEXA = 0x3b, // ...
+
+ GPR_FOGCOL = 0x3d, // ...
+
+ GPR_TEXFLUSH = 0x3f,// Write to this register before using newly loaded texture
+ GPR_SCISSOR_1, // Setup clipping rectangle (Context 1)
+ GPR_SCISSOR_2, // Setup clipping rectangle (Context 2)
+ GPR_ALPHA_1, // Setup Alpha Blending Parameters (Context 1)
+ GPR_ALPHA_2, // Setup Alpha Blending Parameters (Context 2)
+ GPR_DIMX, // ...
+ GPR_DTHE, // ...
+ GPR_COLCLAMP, // ...
+ GPR_TEST_1, // ...
+ GPR_TEST_2, // ...
+ GPR_PABE, // ...
+ GPR_FBA_1, // ...
+ GPR_FBA_2, // ...
+ GPR_FRAME_1, // Frame buffer settings (Context 1)
+ GPR_FRAME_2, // Frame buffer settings (Context 2)
+ GPR_ZBUF_1, // ...
+ GPR_ZBUF_2, // ...
+ GPR_BITBLTBUF, // Setup Image Transfer Between EE and GS
+ GPR_TRXPOS, // Setup Image Transfer Coordinates
+ GPR_TRXREG, // Setup Image Transfer Size
+ GPR_TRXDIR, // Set Image Transfer Directon + Start Transfer
+ GPR_HWREG,
+
+ GPR_SIGNAL = 0x60,
+ GPR_FINISH,
+ GPR_LABEL
+};
+
+enum PrimTypes {
+ PR_POINT = 0,
+ PR_LINE,
+ PR_LINESTRIP,
+ PR_TRIANGLE,
+ PR_TRIANGLESTRIP,
+ PR_TRIANGLEFAN,
+ PR_SPRITE
+};
+
+#define GS_PSMCT32 0x00
+#define GS_PSMCT24 0x01
+#define GS_PSMCT16 0x02
+#define GS_PSMCT16S 0x0A
+#define GS_PSMT8 0x13
+#define GS_PSMT4 0x14
+#define GS_PSMT4HL 0x24
+#define GS_PSMT4HH 0x2C
+#define GS_PSMT8H 0x1B
+
+/*#define GS_SET_BITBLTBUF(sbp, sbw, spsm, dbp, dbw, dpsm) \
+ ((uint64)(sbp) | ((uint64)(sbw) << 16) | \
+ ((uint64)(spsm) << 24) | ((uint64)(dbp) << 32) | \
+ ((uint64)(dbw) << 48) | ((uint64)(dpsm) << 56))*/
+
+#define GS_SET_SRC_BLTBUF(sbp, sbw, spsm) \
+ ((sbp) | ((uint64)sbw << 16) | ((uint64)spsm << 24))
+
+#define GS_SET_DEST_BLTBUF(dbp, dbw, dpsm) \
+ (((uint64)(dbp) << 32) | ((uint64)(dbw) << 48) | ((uint64)(dpsm) << 56))
+
+#define GS_SET_SRC_TRXPOS(ssax, ssay) \
+ ((ssax) | ((uint64)ssay << 16))
+
+#define GS_SET_DEST_TRXPOS(dsax, dsay) \
+ (((uint64)(dsax) << 32) | ((uint64)(dsay) << 48))
+
+#define GS_SET_TRXREG(rrw, rrh) \
+ ((uint64)(rrw) | ((uint64)(rrh) << 32))
+
+#define GS_SET_TEXA(ta0, aem, ta1) \
+ ((uint64)(ta0) | ((uint64)(aem) << 15) | ((uint64)(ta1) << 32))
+
+#define GS_SET_TEX0(tbp, tbw, psm, tw, th, tcc, tfx, cbp, cpsm, csm, csa, cld) \
+ ((uint64)(tbp) | ((uint64)(tbw) << 14) | ((uint64)(psm) << 20) | ((uint64)(tw) << 26) | \
+ ((uint64)(th) << 30) | ((uint64)(tcc) << 34) | ((uint64)(tfx) << 35) | ((uint64)(cbp) << 37) | \
+ ((uint64)(cpsm) << 51) | ((uint64)(csm) << 55) | ((uint64)(csa) << 56) | ((uint64)(cld) << 61))
+
+#define GIF_SET_TAG(nloop, eop, pre, prim, flg, nreg) \
+ ( (uint64)(nloop) | ((uint64)(eop)<<15) | ((uint64)(pre) << 46) | \
+ ((uint64)(prim)<<47) | ((uint64)(flg)<<58) | ((uint64)(nreg)<<60) )
+
+#define GS_SET_UV(u, v) ((uint64)(u) | ((uint64)(v) << 16))
+
+#define GS_SET_XYZ(x, y, z) \
+ ((uint64)(x) | ((uint64)(y) << 16) | ((uint64)(z) << 32))
+
+#define GS_SET_XYOFFSET(ofx, ofy) ((uint64)(ofx) | ((uint64)(ofy) << 32))
+
+#define GS_SET_SCISSOR(scax0, scax1, scay0, scay1) \
+ ( (uint64)(scax0) | ((uint64)(scax1) << 16) | ((uint64)(scay0) << 32) | ((uint64)(scay1) << 48) )
+
+#define GS_SET_FRAME(fbp, fbw, psm, fbmask) \
+ ( (uint64)(fbp) | (uint64)((uint64)(fbw) << 16) | (uint64)((uint64)(psm) << 24) | (uint64)((uint64)(fbmask) << 32) )
+
+#define GS_SET_TEST(ate, atst, aref, afail, date, datm, zte, ztst) \
+ ( (uint64)(ate) | ((uint64)(atst) << 1) | ((uint64)(aref) << 4) | ((uint64)(afail) << 12) | \
+ ((uint64)(date) << 14) | ((uint64)(datm) << 15) | ((uint64)(zte) << 16) | ((uint64)(ztst) << 17) )
+
+#define FILTER_NEAREST 0
+#define FILTER_LINEAR 1
+
+#define GS_SET_TEX1(lcm, mxl, mmag, mmin, mtba, l, k) \
+ ((uint64)(lcm) | ((uint64)(mxl) << 2) | ((uint64)(mmag) << 5) | ((uint64)(mmin) << 6) | \
+ ((uint64)(mtba) << 9) | ((uint64)(l) << 19) | ((uint64)(k) << 32))
+
+enum AlphaBlendColor {
+ SOURCE_COLOR = 0,
+ DEST_COLOR,
+ ZERO_COLOR
+};
+
+enum AlphaBlendAlpha {
+ SOURCE_ALPHA = 0,
+ DEST_ALPHA,
+ FIXED_ALPHA
+};
+
+#define GS_SET_ALPHA(a, b, c, d, fix) \
+ ((uint64)(a) | ((uint64)(b)<<2) | ((uint64)(c)<<4) | ((uint64)(d)<<6) | ((uint64)(fix)<<32))
+
+#define GS_SET_PRIM(prim, iip, tme, fge, abe, aa1, fst, ctxt, fix) \
+ ((uint64)(prim) | ((uint64)(iip) << 3) | ((uint64)(tme) << 4) | \
+ ((uint64)(fge) << 5) | ((uint64)(abe) << 6) | ((uint64)(aa1) << 7) | \
+ ((uint64)(fst) << 8) | ((uint64)(ctxt) << 9) | ((uint64)(fix) << 10))
+
+#define GS_SET_COLQ(c) (0x3f80000000000000 | c)
+
+#endif // __GSDEFS_H__