{"id":13747846,"url":"https://github.com/ps2dev/gsKit","last_synced_at":"2025-05-09T10:32:10.234Z","repository":{"id":1061692,"uuid":"896670","full_name":"ps2dev/gsKit","owner":"ps2dev","description":"gsKit is a C interface to the PS2 Graphics Synthesizer","archived":false,"fork":false,"pushed_at":"2024-03-30T21:38:31.000Z","size":4617,"stargazers_count":102,"open_issues_count":9,"forks_count":26,"subscribers_count":20,"default_branch":"master","last_synced_at":"2024-05-22T17:34:10.438Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ps2dev.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2010-09-08T17:16:40.000Z","updated_at":"2024-08-03T07:01:01.889Z","dependencies_parsed_at":"2024-01-13T01:39:36.009Z","dependency_job_id":"bda50d7e-15fc-4798-9134-6aac383cd221","html_url":"https://github.com/ps2dev/gsKit","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ps2dev%2FgsKit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ps2dev%2FgsKit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ps2dev%2FgsKit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ps2dev%2FgsKit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ps2dev","download_url":"https://codeload.github.com/ps2dev/gsKit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253234178,"owners_count":21875561,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T07:00:25.921Z","updated_at":"2025-05-09T10:32:08.394Z","avatar_url":"https://github.com/ps2dev.png","language":"C","funding_links":[],"categories":["Uncategorized"],"sub_categories":["Uncategorized"],"readme":"# GSKIT\n\n```txt\n  ____     ___ |    / _____ _____\n |  __    |    |___/    |     |\n |___| ___|    |    \\ __|__   |              gsKit Open Source Project.\n -----------------------------------------------------------------------\n Copyright 2004 - Chris \"Neovanglist\" Gilbert \u003cNeovanglist@LainOS.org\u003e.\n All rights reserved.\n Licenced under Academic Free License version 2.0\n -----------------------------------------------------------------------\n```\n\n[![CI](https://github.com/ps2dev/gsKit/workflows/CI/badge.svg)](https://github.com/ps2dev/gsKit/actions?query=workflow%3ACI)\n[![CI-Docker](https://github.com/ps2dev/gsKit/workflows/CI-Docker/badge.svg)](https://github.com/ps2dev/gsKit/actions?query=workflow%3ACI-Docker)\n\n## **ATTENTION**\n\nIf you are confused on how to start developing for PS2, see the\n[getting started](https://ps2dev.github.io/#getting-started) section on\nthe ps2dev main page.  \n\n## Introduction\n\ngsKit is a library that provides a C interface to the Playstation 2\nGraphics Synthesizer. It is low level in nature, implimented using the\nPS2SDK and inline assembly. This project does not aim to be all\ninclusive, rather a \"lean and mean\" interface to the GS hardware.\n\nThe following list is of things that, when complete, gsKit will be capable\nof when it reaches it's mature stages. It is currently in the early\nstages of development. Read the STATUS file for detailed information.\n\ngsKit aims to provide the following functionality:\n\n*   Multi format GS initialization. (NTSC, PAL, DTV, VESA)\n*   HalfBuffer Support (`NTSC_I` and `PAL_I` modes)\n*   VSync, Double Buffering, Anti Aliasing, and Z Depth Test.\n*   Render Queue Support, with different drawing modes. (`GS_ONESHOT`, and `GS_PERSISTANT`)\n*   Overlay and multi-context support utilizing the \"Merge Circuit\".\n*   Basic primitives as per the Sony documentation. (Line, Tri, TriStrip, ...)\n*   Extended primitives support. (Quads and GL Style Vertex Lists)\n*   Simple texture loading and handling.\n*   Font and printing support for FNT and TrueType formats.\n*   GS debugging and diagnostic functionality.\n*   C accessibility of all documented GS functions.\n\ngsKit also includes a library named dmaKit. dmaKit provides C\nroutines for DMAC usage by gsKit. The aim of this library is also\nfor eventual inclusion in [PS2SDK](https://github.com/ps2dev/ps2sdk). For now, it will remain part of the\ngsKit project while it matures.\n\nThis library is designed for integration into the PS2SDK when it\nbecomes mature. As such, it is also designed to link and compile\nagainst the PS2SDK. Support for PS2LIB and other support libraries is\nuntested.\n\n## Project Layout\n\nA source or binary release of gsKit will include the following\ndirectories:\n\n*   `gsKit/lib` - gsKit compiled libraries.\n*   `gsKit/doc` - gsKit documentation.\n*   `gsKit/examples` - Example projects demonstrating use of gsKit.\n*   `gsKit/ee` - ee root directory.\n*   `gsKit/ee/gs` - gsKit source root.\n*   `gsKit/ee/gs/include` - gsKit include files.\n*   `gsKit/ee/gs/src` - gsKit source files.\n*   `gsKit/ee/dma` - dmaKit source root.\n*   `gsKit/ee/dma/include` - dmaKit include files.\n*   `gsKit/ee/dms/src` - dmaKit source files.\n*   `gsKit/vu1` - VU1 assembly files.\n\n## Installation\n\n1.  Install PS2Toolchain\n    In order to install `gsKit`, you must have previously installed the [PS2Toolchain](https://github.com/ps2dev/ps2toolchain)\n    (which automatically install also the [PS2SDK](https://github.com/ps2dev/ps2sdk))\n\n2.  Edit your login script\n    Add this to your login script (example: `~/.bash_profile`)\\\n    `export GSKIT=$PS2DEV/gsKit`\n\nNOTE: You should have already defined in your login script the `$PS2DEV` variable\n\n3.  Compile and Install\n    Run the next command\n    `make \u0026\u0026 make install`\n\n## Build \u0026 Compile Examples\n\n1. Install [CMake](https://github.com/Kitware/CMake)\n\n2. Build \u0026 compile\n    `make all`\n\nNOTE: The examples will be in the `build` folder\n\n## Important Notes\n\nThere are several small notes that need to be made about gsKit operation.\n\n*   As of version 0.3, gsKit no longer uses the scratchpad, so you are free to\n    use it in your application.\n\n*   There is a default drawbuffer size of 2MB for oneshot, and 256KB for persistent.\n    If they are filled beyond capacity, bad things will start to happen.\n    (Compile with `-DGSKIT_DEBUG` to get warnings about it at the expense of performance\n    or just uncomment section in Makefile.pref)\n    You can tweak these values with the `GS_RENDER_QUEUE_(OS/PER)_POOLSIZE` macros.\n    (Look in ee/gs/include/gsInit.h)\n\n*   Most gsKit routines (prim pushing, `TEST`/`CLAMP` mode setting, etc) will queue their\n    execution into the drawbuffer. Texture data sends however, are the exception to this.\n    They happen immediately upon calling, however this behavior will be changed so they\n    are also queued into the drawbuffer in a future version.\n\n*   By default gsKit's active drawbuffer is Oneshot.\n\n*   You can specify some external libraries in Makefile.pref\n    (just uncomment what you need)\n\n## Community\n\nLinks for discussion and chat are available\n[here](https://ps2dev.github.io/#community).  \n\n## Credits\n\nSee `AUTHORS`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fps2dev%2FgsKit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fps2dev%2FgsKit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fps2dev%2FgsKit/lists"}