1
1
# GSKIT
2
+
2
3
``` txt
3
4
____ ___ | / _____ _____
4
5
| __ | |___/ | |
14
15
[ ![ CI-Docker] ( https://github.com/ps2dev/gsKit/workflows/CI-Docker/badge.svg )] ( https://github.com/ps2dev/gsKit/actions?query=workflow%3ACI-Docker )
15
16
16
17
## Introduction
17
-
18
+
18
19
gsKit is a library that provides a C interface to the Playstation 2
19
20
Graphics Synthesizer. It is low level in nature, implimented using the
20
21
PS2SDK and inline assembly. This project does not aim to be all
@@ -25,25 +26,25 @@ of when it reaches it's mature stages. It is currently in the early
25
26
stages of development. Read the STATUS file for detailed information.
26
27
27
28
gsKit aims to provide the following functionality:
28
-
29
- - Multi format GS initialization. (NTSC, PAL, DTV, VESA)
30
- - HalfBuffer Support (` NTSC_I ` and ` PAL_I ` modes)
31
- - VSync, Double Buffering, Anti Aliasing, and Z Depth Test.
32
- - Render Queue Support, with different drawing modes. (` GS_ONESHOT ` , and ` GS_PERSISTANT ` )
33
- - Overlay and multi-context support utilizing the "Merge Circuit".
34
- - Basic primitives as per the Sony documentation. (Line, Tri, TriStrip, ...)
35
- - Extended primitives support. (Quads and GL Style Vertex Lists)
36
- - Simple texture loading and handling.
37
- - Font and printing support for FNT and TrueType formats.
38
- - GS debugging and diagnostic functionality.
39
- - C accessibility of all documented GS functions.
40
-
41
- gsKit also includes a library named dmaKit. dmaKit provides C
29
+
30
+ * Multi format GS initialization. (NTSC, PAL, DTV, VESA)
31
+ * HalfBuffer Support (` NTSC_I ` and ` PAL_I ` modes)
32
+ * VSync, Double Buffering, Anti Aliasing, and Z Depth Test.
33
+ * Render Queue Support, with different drawing modes. (` GS_ONESHOT ` , and ` GS_PERSISTANT ` )
34
+ * Overlay and multi-context support utilizing the "Merge Circuit".
35
+ * Basic primitives as per the Sony documentation. (Line, Tri, TriStrip, ...)
36
+ * Extended primitives support. (Quads and GL Style Vertex Lists)
37
+ * Simple texture loading and handling.
38
+ * Font and printing support for FNT and TrueType formats.
39
+ * GS debugging and diagnostic functionality.
40
+ * C accessibility of all documented GS functions.
41
+
42
+ gsKit also includes a library named dmaKit. dmaKit provides C
42
43
routines for DMAC usage by gsKit. The aim of this library is also
43
44
for eventual inclusion in [ PS2SDK] ( https://github.com/ps2dev/ps2sdk ) . For now, it will remain part of the
44
45
gsKit project while it matures.
45
46
46
- This library is designed for integration into the PS2SDK when it
47
+ This library is designed for integration into the PS2SDK when it
47
48
becomes mature. As such, it is also designed to link and compile
48
49
against the PS2SDK. Support for PS2LIB and other support libraries is
49
50
untested.
@@ -53,62 +54,62 @@ untested.
53
54
A source or binary release of gsKit will include the following
54
55
directories:
55
56
56
- - ` gsKit/lib ` - gsKit compiled libraries.
57
- - ` gsKit/doc ` - gsKit documentation.
58
- - ` gsKit/examples ` - Example projects demonstrating use of gsKit.
59
- - ` gsKit/ee ` - ee root directory.
60
- - ` gsKit/ee/gs ` - gsKit source root.
61
- - ` gsKit/ee/gs/include ` - gsKit include files.
62
- - ` gsKit/ee/gs/src ` - gsKit source files.
63
- - ` gsKit/ee/dma ` - dmaKit source root.
64
- - ` gsKit/ee/dma/include ` - dmaKit include files.
65
- - ` gsKit/ee/dms/src ` - dmaKit source files.
66
- - ` gsKit/vu1 ` - VU1 assembly files.
57
+ * ` gsKit/lib ` - gsKit compiled libraries.
58
+ * ` gsKit/doc ` - gsKit documentation.
59
+ * ` gsKit/examples ` - Example projects demonstrating use of gsKit.
60
+ * ` gsKit/ee ` - ee root directory.
61
+ * ` gsKit/ee/gs ` - gsKit source root.
62
+ * ` gsKit/ee/gs/include ` - gsKit include files.
63
+ * ` gsKit/ee/gs/src ` - gsKit source files.
64
+ * ` gsKit/ee/dma ` - dmaKit source root.
65
+ * ` gsKit/ee/dma/include ` - dmaKit include files.
66
+ * ` gsKit/ee/dms/src ` - dmaKit source files.
67
+ * ` gsKit/vu1 ` - VU1 assembly files.
67
68
68
69
## Installation
69
70
70
- 1 . Install PS2Toolchain
71
- In order to install ` gsKit ` , you must have previously installed the [ PS2Toolchain] ( https://github.com/ps2dev/ps2toolchain )
72
- (which automatically install also the [ PS2SDK] ( https://github.com/ps2dev/ps2sdk ) )
71
+ 1 . Install PS2Toolchain
72
+ In order to install ` gsKit ` , you must have previously installed the [ PS2Toolchain] ( https://github.com/ps2dev/ps2toolchain )
73
+ (which automatically install also the [ PS2SDK] ( https://github.com/ps2dev/ps2sdk ) )
73
74
74
- 2 . Edit your login script
75
- Add this to your login script (example: ` ~/.bash_profile ` )
76
- ` export GSKIT=$PS2DEV/gsKit `
75
+ 2 . Edit your login script
76
+ Add this to your login script (example: ` ~/.bash_profile ` )\
77
+ ` export GSKIT=$PS2DEV/gsKit `
77
78
78
79
NOTE: You should have already defined in your login script the ` $PS2DEV ` variable
79
80
80
- 3 . Compile and Install
81
- Run the next command
82
- ` make && make install `
81
+ 3 . Compile and Install
82
+ Run the next command
83
+ ` make && make install `
83
84
84
85
## Important Notes
85
86
86
87
There are several small notes that need to be made about gsKit operation.
87
88
88
- - As of version 0.3, gsKit no longer uses the scratchpad, so you are free to
89
- use it in your application.
89
+ * As of version 0.3, gsKit no longer uses the scratchpad, so you are free to
90
+ use it in your application.
90
91
91
- - There is a default drawbuffer size of 2MB for oneshot, and 256KB for persistent.
92
- If they are filled beyond capacity, bad things will start to happen.
93
- (Compile with ` -DGSKIT_DEBUG ` to get warnings about it at the expense of performance
94
- or just uncomment section in Makefile.pref)
95
- You can tweak these values with the ` GS_RENDER_QUEUE_(OS/PER)_POOLSIZE ` macros.
96
- (Look in ee/gs/include/gsInit.h)
92
+ * There is a default drawbuffer size of 2MB for oneshot, and 256KB for persistent.
93
+ If they are filled beyond capacity, bad things will start to happen.
94
+ (Compile with ` -DGSKIT_DEBUG ` to get warnings about it at the expense of performance
95
+ or just uncomment section in Makefile.pref)
96
+ You can tweak these values with the ` GS_RENDER_QUEUE_(OS/PER)_POOLSIZE ` macros.
97
+ (Look in ee/gs/include/gsInit.h)
97
98
98
- - Most gsKit routines (prim pushing, ` TEST ` /` CLAMP ` mode setting, etc) will queue their
99
- execution into the drawbuffer. Texture data sends however, are the exception to this.
100
- They happen immediately upon calling, however this behavior will be changed so they
101
- are also queued into the drawbuffer in a future version.
99
+ * Most gsKit routines (prim pushing, ` TEST ` /` CLAMP ` mode setting, etc) will queue their
100
+ execution into the drawbuffer. Texture data sends however, are the exception to this.
101
+ They happen immediately upon calling, however this behavior will be changed so they
102
+ are also queued into the drawbuffer in a future version.
102
103
103
- - By default gsKit's active drawbuffer is Oneshot.
104
+ * By default gsKit's active drawbuffer is Oneshot.
104
105
105
- - You can specify some external libraries in Makefile.pref
106
- (just uncomment what you need)
106
+ * You can specify some external libraries in Makefile.pref
107
+ (just uncomment what you need)
107
108
108
109
## Feedback & Questions
109
110
110
111
You can usually find the developers on freenode in the channel #ps2dev. You
111
- can also use the forums at http://forums.ps2dev.org ,
112
+ can also use the forums at http://forums.ps2dev.org ,
112
113
113
114
## Credits
114
115
0 commit comments