drc/gte: add some stall handling
[pcsx_rearmed.git] / libpcsxcore / gte.h
CommitLineData
ef79bbde
P
1/***************************************************************************
2 * PCSX-Revolution - PlayStation Emulator for Nintendo Wii *
3 * Copyright (C) 2009-2010 PCSX-Revolution Dev Team *
4 * <http://code.google.com/p/pcsx-revolution/> *
5 * *
6 * This program is free software; you can redistribute it and/or modify *
7 * it under the terms of the GNU General Public License as published by *
8 * the Free Software Foundation; either version 2 of the License, or *
9 * (at your option) any later version. *
10 * *
11 * This program is distributed in the hope that it will be useful, *
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
14 * GNU General Public License for more details. *
15 * *
16 * You should have received a copy of the GNU General Public License *
17 * along with this program; if not, write to the *
18 * Free Software Foundation, Inc., *
19 * 51 Franklin Street, Fifth Floor, Boston, MA 02111-1307 USA. *
20 ***************************************************************************/
21
59774ed0 22#ifdef FLAGLESS
23
24#define gteRTPS gteRTPS_nf
25#define gteOP gteOP_nf
26#define gteNCLIP gteNCLIP_nf
27#define gteDPCS gteDPCS_nf
28#define gteINTPL gteINTPL_nf
29#define gteMVMVA gteMVMVA_nf
30#define gteNCDS gteNCDS_nf
31#define gteNCDT gteNCDT_nf
32#define gteCDP gteCDP_nf
33#define gteNCCS gteNCCS_nf
34#define gteCC gteCC_nf
35#define gteNCS gteNCS_nf
36#define gteNCT gteNCT_nf
37#define gteSQR gteSQR_nf
38#define gteDCPL gteDCPL_nf
39#define gteDPCT gteDPCT_nf
40#define gteAVSZ3 gteAVSZ3_nf
41#define gteAVSZ4 gteAVSZ4_nf
42#define gteRTPT gteRTPT_nf
43#define gteGPF gteGPF_nf
44#define gteGPL gteGPL_nf
45#define gteNCCT gteNCCT_nf
46
6c0eefaf 47#define gteGPL_part_noshift gteGPL_part_noshift_nf
48#define gteGPL_part_shift gteGPL_part_shift_nf
49#define gteDPCS_part_noshift gteDPCS_part_noshift_nf
50#define gteDPCS_part_shift gteDPCS_part_shift_nf
51#define gteINTPL_part_noshift gteINTPL_part_noshift_nf
52#define gteINTPL_part_shift gteINTPL_part_shift_nf
53#define gteMACtoRGB gteMACtoRGB_nf
54
55#undef __GTE_H__
59774ed0 56#endif
57
ef79bbde
P
58#ifndef __GTE_H__
59#define __GTE_H__
60
61#ifdef __cplusplus
62extern "C" {
63#endif
64
65#include "psxcommon.h"
66#include "r3000a.h"
67
6c0eefaf 68struct psxCP2Regs;
f74fb727 69
81dbbf4c 70extern const char gte_cycletab[64];
71
72int gteCheckStallRaw(u32 op_cycles, psxRegisters *regs);
73void gteCheckStall(u32 op);
74
ef79bbde
P
75void gteMFC2();
76void gteCFC2();
77void gteMTC2();
78void gteCTC2();
79void gteLWC2();
80void gteSWC2();
81
6c0eefaf 82void gteRTPS(struct psxCP2Regs *regs);
83void gteOP(struct psxCP2Regs *regs);
84void gteNCLIP(struct psxCP2Regs *regs);
85void gteDPCS(struct psxCP2Regs *regs);
86void gteINTPL(struct psxCP2Regs *regs);
87void gteMVMVA(struct psxCP2Regs *regs);
88void gteNCDS(struct psxCP2Regs *regs);
89void gteNCDT(struct psxCP2Regs *regs);
90void gteCDP(struct psxCP2Regs *regs);
91void gteNCCS(struct psxCP2Regs *regs);
92void gteCC(struct psxCP2Regs *regs);
93void gteNCS(struct psxCP2Regs *regs);
94void gteNCT(struct psxCP2Regs *regs);
95void gteSQR(struct psxCP2Regs *regs);
96void gteDCPL(struct psxCP2Regs *regs);
97void gteDPCT(struct psxCP2Regs *regs);
98void gteAVSZ3(struct psxCP2Regs *regs);
99void gteAVSZ4(struct psxCP2Regs *regs);
100void gteRTPT(struct psxCP2Regs *regs);
101void gteGPF(struct psxCP2Regs *regs);
102void gteGPL(struct psxCP2Regs *regs);
103void gteNCCT(struct psxCP2Regs *regs);
104
105void gteSQR_part_noshift(struct psxCP2Regs *regs);
106void gteSQR_part_shift(struct psxCP2Regs *regs);
107void gteOP_part_noshift(struct psxCP2Regs *regs);
108void gteOP_part_shift(struct psxCP2Regs *regs);
109void gteDCPL_part(struct psxCP2Regs *regs);
110void gteGPF_part_noshift(struct psxCP2Regs *regs);
111void gteGPF_part_shift(struct psxCP2Regs *regs);
112
113void gteGPL_part_noshift(struct psxCP2Regs *regs);
114void gteGPL_part_shift(struct psxCP2Regs *regs);
115void gteDPCS_part_noshift(struct psxCP2Regs *regs);
116void gteDPCS_part_shift(struct psxCP2Regs *regs);
117void gteINTPL_part_noshift(struct psxCP2Regs *regs);
118void gteINTPL_part_shift(struct psxCP2Regs *regs);
119void gteMACtoRGB(struct psxCP2Regs *regs);
ef79bbde
P
120
121#ifdef __cplusplus
122}
123#endif
124#endif