REDRIVER2/src_rebuild/EMULATOR/GTEREG.H
Ilya Shurumov 718cf79353 - [EMU] fix MulMatrix0
- addded gte_MulMatrix0
2020-04-19 08:16:03 +06:00

120 lines
4.2 KiB
C

#ifndef GTEREG_H
#define GTEREG_H
//Externals
extern int LIM(int value, int max, int min, unsigned int flag);
extern GTERegisters gteRegs;
extern int docop2(int op);
// TODO: rename all defines with "C2_" prefix
/* Data Registers mtc2 mfc2 */
#define VX0 (gteRegs.CP2D.p[ 0 ].sw.l)
#define VY0 (gteRegs.CP2D.p[ 0 ].sw.h)
#define VZ0 (gteRegs.CP2D.p[ 1 ].sw.l)
#define VX1 (gteRegs.CP2D.p[ 2 ].w.l)
#define VY1 (gteRegs.CP2D.p[ 2 ].w.h)
#define VZ1 (gteRegs.CP2D.p[ 3 ].w.l)
#define VX2 (gteRegs.CP2D.p[ 4 ].w.l)
#define VY2 (gteRegs.CP2D.p[ 4 ].w.h)
#define VZ2 (gteRegs.CP2D.p[ 5 ].w.l)
#define R (gteRegs.CP2D.p[ 6 ].b.l)
#define G (gteRegs.CP2D.p[ 6 ].b.h)
#define B (gteRegs.CP2D.p[ 6 ].b.h2)
#define CODE (gteRegs.CP2D.p[ 6 ].b.h3)
#define OTZ (gteRegs.CP2D.p[ 7 ].w.l)
#define IR0 (gteRegs.CP2D.p[ 8 ].sw.l)
#define IR1 (gteRegs.CP2D.p[ 9 ].sw.l)
#define IR2 (gteRegs.CP2D.p[ 10 ].sw.l)
#define IR3 (gteRegs.CP2D.p[ 11 ].sw.l)
#define SXY0 (gteRegs.CP2D.p[ 12 ].d)
#define SX0 (gteRegs.CP2D.p[ 12 ].sw.l)
#define SY0 (gteRegs.CP2D.p[ 12 ].sw.h)
#define SXY1 (gteRegs.CP2D.p[ 13 ].d)
#define SX1 (gteRegs.CP2D.p[ 13 ].sw.l)
#define SY1 (gteRegs.CP2D.p[ 13 ].sw.h)
#define SXY2 (gteRegs.CP2D.p[ 14 ].d)
#define SX2 (gteRegs.CP2D.p[ 14 ].sw.l)
#define SY2 (gteRegs.CP2D.p[ 14 ].sw.h)
#define SXYP (gteRegs.CP2D.p[ 15 ].d)
#define SXP (gteRegs.CP2D.p[ 15 ].sw.l)
#define SYP (gteRegs.CP2D.p[ 15 ].sw.h)
#define SZ0 (gteRegs.CP2D.p[ 16 ].w.l)
#define SZ1 (gteRegs.CP2D.p[ 17 ].w.l)
#define SZ2 (gteRegs.CP2D.p[ 18 ].w.l)
#define SZ3 (gteRegs.CP2D.p[ 19 ].w.l)
#define RGB0 (gteRegs.CP2D.p[ 20 ].d)
#define R0 (gteRegs.CP2D.p[ 20 ].b.l)
#define G0 (gteRegs.CP2D.p[ 20 ].b.h)
#define B0 (gteRegs.CP2D.p[ 20 ].b.h2)
#define CD0 (gteRegs.CP2D.p[ 20 ].b.h3)
#define RGB1 (gteRegs.CP2D.p[ 21 ].d)
#define R1 (gteRegs.CP2D.p[ 21 ].b.l)
#define G1 (gteRegs.CP2D.p[ 21 ].b.h)
#define B1 (gteRegs.CP2D.p[ 21 ].b.h2)
#define CD1 (gteRegs.CP2D.p[ 21 ].b.h3)
#define RGB2 (gteRegs.CP2D.p[ 22 ].d)
#define R2 (gteRegs.CP2D.p[ 22 ].b.l)
#define G2 (gteRegs.CP2D.p[ 22 ].b.h)
#define B2 (gteRegs.CP2D.p[ 22 ].b.h2)
#define CD2 (gteRegs.CP2D.p[ 22 ].b.h3)
#define RES1 (gteRegs.CP2D.p[ 23 ].d)
#define MAC0 (gteRegs.CP2D.p[ 24 ].sd)
#define MAC1 (gteRegs.CP2D.p[ 25 ].sd)
#define MAC2 (gteRegs.CP2D.p[ 26 ].sd)
#define MAC3 (gteRegs.CP2D.p[ 27 ].sd)
#define IRGB (gteRegs.CP2D.p[ 28 ].d)
#define ORGB (gteRegs.CP2D.p[ 29 ].d)
#define LZCS (gteRegs.CP2D.p[ 30 ].d)
#define LZCR (gteRegs.CP2D.p[ 31 ].d)
/* Control Registers ctc2 cfc2*/
#define R11 (gteRegs.CP2C.p[ 0 ].sw.l)
#define R12 (gteRegs.CP2C.p[ 0 ].sw.h)
#define R13 (gteRegs.CP2C.p[ 1 ].sw.l)
#define R21 (gteRegs.CP2C.p[ 1 ].sw.h)
#define R22 (gteRegs.CP2C.p[ 2 ].sw.l)
#define R23 (gteRegs.CP2C.p[ 2 ].sw.h)
#define R31 (gteRegs.CP2C.p[ 3 ].sw.l)
#define R32 (gteRegs.CP2C.p[ 3 ].sw.h)
#define R33 (gteRegs.CP2C.p[ 4 ].sw.l)
#define TRX (gteRegs.CP2C.p[ 5 ].sd)
#define TRY (gteRegs.CP2C.p[ 6 ].sd)
#define TRZ (gteRegs.CP2C.p[ 7 ].sd)
#define L11 (gteRegs.CP2C.p[ 8 ].sw.l)
#define L12 (gteRegs.CP2C.p[ 8 ].sw.h)
#define L13 (gteRegs.CP2C.p[ 9 ].sw.l)
#define L21 (gteRegs.CP2C.p[ 9 ].sw.h)
#define L22 (gteRegs.CP2C.p[ 10 ].sw.l)
#define L23 (gteRegs.CP2C.p[ 10 ].sw.h)
#define L31 (gteRegs.CP2C.p[ 11 ].sw.l)
#define L32 (gteRegs.CP2C.p[ 11 ].sw.h)
#define L33 (gteRegs.CP2C.p[ 12 ].sw.l)
#define RBK (gteRegs.CP2C.p[ 13 ].sd)
#define GBK (gteRegs.CP2C.p[ 14 ].sd)
#define BBK (gteRegs.CP2C.p[ 15 ].sd)
#define LR1 (gteRegs.CP2C.p[ 16 ].sw.l)
#define LR2 (gteRegs.CP2C.p[ 16 ].sw.h)
#define LR3 (gteRegs.CP2C.p[ 17 ].sw.l)
#define LG1 (gteRegs.CP2C.p[ 17 ].sw.h)
#define LG2 (gteRegs.CP2C.p[ 18 ].sw.l)
#define LG3 (gteRegs.CP2C.p[ 18 ].sw.h)
#define LB1 (gteRegs.CP2C.p[ 19 ].sw.l)
#define LB2 (gteRegs.CP2C.p[ 19 ].sw.h)
#define LB3 (gteRegs.CP2C.p[ 20 ].sw.l)
#define RFC (gteRegs.CP2C.p[ 21 ].sd)
#define GFC (gteRegs.CP2C.p[ 22 ].sd)
#define BFC (gteRegs.CP2C.p[ 23 ].sd)
#define OFX (gteRegs.CP2C.p[ 24 ].sd)
#define OFY (gteRegs.CP2C.p[ 25 ].sd)
#define H (gteRegs.CP2C.p[ 26 ].sw.l)
#define DQA (gteRegs.CP2C.p[ 27 ].sw.l)
#define DQB (gteRegs.CP2C.p[ 28 ].sd)
#define ZSF3 (gteRegs.CP2C.p[ 29 ].sw.l)
#define ZSF4 (gteRegs.CP2C.p[ 30 ].sw.l)
#define FLAG (gteRegs.CP2C.p[ 31 ].d)
#endif