git subrepo clone https://github.com/libretro/libretro-common.git deps/libretro-common
[pcsx_rearmed.git] / deps / libretro-common / include / defines / psp_defines.h
1 /* Copyright (C) 2010-2021 The RetroArch team
2  *
3  * ---------------------------------------------------------------------------------------
4  * The following license statement only applies to this file (psp_defines.h).
5  * ---------------------------------------------------------------------------------------
6  *
7  * Permission is hereby granted, free of charge,
8  * to any person obtaining a copy of this software and associated documentation files (the "Software"),
9  * to deal in the Software without restriction, including without limitation the rights to
10  * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
11  * and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
12  *
13  * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
14  *
15  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
16  * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
18  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
19  * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21  */
22
23 #ifndef _PSP_DEFINES_H
24 #define _PSP_DEFINES_H
25
26 /*============================================================
27         ERROR PROTOTYPES
28 ============================================================ */
29
30 #ifndef SCE_OK
31 #define SCE_OK 0
32 #endif
33
34 /*============================================================
35         DISPLAY PROTOTYPES
36 ============================================================ */
37
38 #if defined(SN_TARGET_PSP2) || defined(VITA)
39
40 #ifdef VITA
41 int sceClibPrintf ( const char * format, ... );
42 #define printf sceClibPrintf
43 #define PSP_DISPLAY_PIXEL_FORMAT_8888 (SCE_DISPLAY_PIXELFORMAT_A8B8G8R8)
44 #else
45 #define PSP_DISPLAY_PIXEL_FORMAT_8888 (SCE_DISPLAY_PIXELFORMAT_A8B8G8R8)
46 #endif
47
48 #define DisplaySetFrameBuf(topaddr, bufferwidth, pixelformat, sync) sceDisplaySetFrameBuf(topaddr, sync)
49
50 #define PSP_FB_WIDTH        960
51 #define PSP_FB_HEIGHT       544
52 #define PSP_PITCH_PIXELS 1024
53
54  // Memory left to the system for threads and other internal stuffs
55 #ifdef SCE_LIBC_SIZE
56 #define RAM_THRESHOLD 0x2000000 + SCE_LIBC_SIZE
57 #else
58 #define RAM_THRESHOLD 0x2000000
59 #endif
60
61 #elif defined(PSP)
62 #define DisplaySetFrameBuf(topaddr, bufferwidth, pixelformat, sync) sceDisplaySetFrameBuf(topaddr, bufferwidth, pixelformat, sync)
63
64 #define SCE_DISPLAY_UPDATETIMING_NEXTVSYNC 1
65
66 #define PSP_FB_WIDTH        512
67 #define PSP_FB_HEIGHT       512
68 #define PSP_PITCH_PIXELS 512
69
70 #endif
71
72 /*============================================================
73         INPUT PROTOTYPES
74 ============================================================ */
75
76 #if defined(SN_TARGET_PSP2) || defined(VITA)
77
78 #define STATE_BUTTON(state) ((state).buttons)
79 #define STATE_ANALOGLX(state) ((state).lx)
80 #define STATE_ANALOGLY(state) ((state).ly)
81 #define STATE_ANALOGRX(state) ((state).rx)
82 #define STATE_ANALOGRY(state) ((state).ry)
83
84 #if defined(VITA)
85 #define DEFAULT_SAMPLING_MODE (SCE_CTRL_MODE_ANALOG)
86
87 #define PSP_CTRL_LEFT SCE_CTRL_LEFT
88 #define PSP_CTRL_DOWN SCE_CTRL_DOWN
89 #define PSP_CTRL_RIGHT SCE_CTRL_RIGHT
90 #define PSP_CTRL_UP SCE_CTRL_UP
91 #define PSP_CTRL_START SCE_CTRL_START
92 #define PSP_CTRL_SELECT SCE_CTRL_SELECT
93 #define PSP_CTRL_TRIANGLE SCE_CTRL_TRIANGLE
94 #define PSP_CTRL_SQUARE SCE_CTRL_SQUARE
95 #define PSP_CTRL_CROSS SCE_CTRL_CROSS
96 #define PSP_CTRL_CIRCLE SCE_CTRL_CIRCLE
97 #define PSP_CTRL_L SCE_CTRL_L1
98 #define PSP_CTRL_R SCE_CTRL_R1
99 #define PSP_CTRL_L2 SCE_CTRL_LTRIGGER
100 #define PSP_CTRL_R2 SCE_CTRL_RTRIGGER
101 #define PSP_CTRL_L3 SCE_CTRL_L3
102 #define PSP_CTRL_R3 SCE_CTRL_R3
103 #else
104 #define DEFAULT_SAMPLING_MODE (SCE_CTRL_MODE_DIGITALANALOG)
105
106 #define PSP_CTRL_LEFT SCE_CTRL_LEFT
107 #define PSP_CTRL_DOWN SCE_CTRL_DOWN
108 #define PSP_CTRL_RIGHT SCE_CTRL_RIGHT
109 #define PSP_CTRL_UP SCE_CTRL_UP
110 #define PSP_CTRL_START SCE_CTRL_START
111 #define PSP_CTRL_SELECT SCE_CTRL_SELECT
112 #define PSP_CTRL_TRIANGLE SCE_CTRL_TRIANGLE
113 #define PSP_CTRL_SQUARE SCE_CTRL_SQUARE
114 #define PSP_CTRL_CROSS SCE_CTRL_CROSS
115 #define PSP_CTRL_CIRCLE SCE_CTRL_CIRCLE
116 #define PSP_CTRL_L SCE_CTRL_L
117 #define PSP_CTRL_R SCE_CTRL_R
118 #endif
119
120 #if defined(VITA)
121 #define CtrlSetSamplingMode(mode) sceCtrlSetSamplingModeExt(mode)
122 #define CtrlPeekBufferPositive(port, pad_data, bufs) sceCtrlPeekBufferPositiveExt2(port, pad_data, bufs)
123 #else
124 #define CtrlSetSamplingMode(mode) sceCtrlSetSamplingMode(mode)
125 #define CtrlPeekBufferPositive(port, pad_data, bufs) sceCtrlPeekBufferPositive(port, pad_data, bufs)
126 #endif
127
128 #elif defined(PSP)
129
130 #define PSP_CTRL_L PSP_CTRL_LTRIGGER
131 #define PSP_CTRL_R PSP_CTRL_RTRIGGER
132
133 #define STATE_BUTTON(state) ((state).Buttons)
134 #define STATE_ANALOGLX(state) ((state).Lx)
135 #define STATE_ANALOGLY(state) ((state).Ly)
136 #define STATE_ANALOGRX(state) ((state).Rx)
137 #define STATE_ANALOGRY(state) ((state).Ry)
138
139 #define DEFAULT_SAMPLING_MODE (PSP_CTRL_MODE_ANALOG)
140
141 #define CtrlSetSamplingMode(mode) sceCtrlSetSamplingMode(mode)
142 #define CtrlPeekBufferPositive(port, pad_data, bufs) sceCtrlPeekBufferPositive(pad_data, bufs)
143 #endif
144
145 #endif