{"id":45139410,"url":"https://github.com/alekmaul/pvsneslib","last_synced_at":"2026-02-20T00:33:04.641Z","repository":{"id":29099509,"uuid":"32628824","full_name":"alekmaul/pvsneslib","owner":"alekmaul","description":"PVSnesLib : A small, open and free development kit for the Nintendo SNES","archived":false,"fork":false,"pushed_at":"2026-01-31T15:16:55.000Z","size":151439,"stargazers_count":1021,"open_issues_count":19,"forks_count":84,"subscribers_count":36,"default_branch":"master","last_synced_at":"2026-02-01T03:22:25.235Z","etag":null,"topics":["c","nintendo-snes","programming","sdk","tcc"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alekmaul.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"custom":["https://www.paypal.com/donate/?hosted_button_id=6K82M5NN8YMMU"]}},"created_at":"2015-03-21T10:49:52.000Z","updated_at":"2026-01-29T22:26:06.000Z","dependencies_parsed_at":"2023-09-22T09:15:18.567Z","dependency_job_id":"d02838c5-a1aa-4b05-bfa1-bced4fd5cc47","html_url":"https://github.com/alekmaul/pvsneslib","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/alekmaul/pvsneslib","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alekmaul%2Fpvsneslib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alekmaul%2Fpvsneslib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alekmaul%2Fpvsneslib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alekmaul%2Fpvsneslib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alekmaul","download_url":"https://codeload.github.com/alekmaul/pvsneslib/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alekmaul%2Fpvsneslib/sbom","scorecard":{"id":179039,"data":{"date":"2025-08-11","repo":{"name":"github.com/alekmaul/pvsneslib","commit":"2aee3286ba42c1f7d3bb401d5faa7f4b6271f4a6"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.1,"checks":[{"name":"Code-Review","score":2,"reason":"Found 1/4 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/doxygen-gh-pages.yml:1","Warn: no topLevel permission defined: .github/workflows/publish_to_wiki.yml:1","Warn: no topLevel permission defined: .github/workflows/pvsneslib_build_package.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Maintained","score":10,"reason":"10 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":9,"reason":"binaries present in source code","details":["Warn: binary detected: pvsneslib/snesmod/tasm.exe:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact 4.4.0 not signed: https://api.github.com/repos/alekmaul/pvsneslib/releases/204522862","Warn: release artifact 4.3.0 not signed: https://api.github.com/repos/alekmaul/pvsneslib/releases/159680865","Warn: release artifact 4.2.0 not signed: https://api.github.com/repos/alekmaul/pvsneslib/releases/144578930","Warn: release artifact 4.1.0 not signed: https://api.github.com/repos/alekmaul/pvsneslib/releases/117906563","Warn: release artifact 4.4.0 does not have provenance: https://api.github.com/repos/alekmaul/pvsneslib/releases/204522862","Warn: release artifact 4.3.0 does not have provenance: https://api.github.com/repos/alekmaul/pvsneslib/releases/159680865","Warn: release artifact 4.2.0 does not have provenance: https://api.github.com/repos/alekmaul/pvsneslib/releases/144578930","Warn: release artifact 4.1.0 does not have provenance: https://api.github.com/repos/alekmaul/pvsneslib/releases/117906563"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/doxygen-gh-pages.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/alekmaul/pvsneslib/doxygen-gh-pages.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/doxygen-gh-pages.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/alekmaul/pvsneslib/doxygen-gh-pages.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish_to_wiki.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/alekmaul/pvsneslib/publish_to_wiki.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/publish_to_wiki.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/alekmaul/pvsneslib/publish_to_wiki.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pvsneslib_build_package.yml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/alekmaul/pvsneslib/pvsneslib_build_package.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pvsneslib_build_package.yml:72: update your workflow using https://app.stepsecurity.io/secureworkflow/alekmaul/pvsneslib/pvsneslib_build_package.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pvsneslib_build_package.yml:115: update your workflow using https://app.stepsecurity.io/secureworkflow/alekmaul/pvsneslib/pvsneslib_build_package.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pvsneslib_build_package.yml:124: update your workflow using https://app.stepsecurity.io/secureworkflow/alekmaul/pvsneslib/pvsneslib_build_package.yml/master?enable=pin","Warn: containerImage not pinned by hash: docker/centos/Dockerfile:1","Warn: containerImage not pinned by hash: docker/debian/Dockerfile:1: pin your Docker image by updating debian:latest to debian:latest@sha256:b6507e340c43553136f5078284c8c68d86ec8262b1724dde73c325e8d3dcdeba","Warn: containerImage not pinned by hash: docker/fedora/Dockerfile:1: pin your Docker image by updating fedora:latest to fedora:latest@sha256:3da64cb89971a1cdbc6046e307eeebcb54f7281c0a606ee48d9995473f6b88d5","Warn: containerImage not pinned by hash: docker/ubuntu/Dockerfile:1: pin your Docker image by updating ubuntu:latest to ubuntu:latest@sha256:a08e551cb33850e4740772b38217fc1796a66da2506d312abe51acda354ff061","Info:   0 out of   5 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   3 third-party GitHubAction dependencies pinned","Info:   0 out of   4 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-16T18:26:31.068Z","repository_id":29099509,"created_at":"2025-08-16T18:26:31.069Z","updated_at":"2025-08-16T18:26:31.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29637413,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-19T22:32:43.237Z","status":"ssl_error","status_checked_at":"2026-02-19T22:32:38.330Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["c","nintendo-snes","programming","sdk","tcc"],"created_at":"2026-02-20T00:33:04.157Z","updated_at":"2026-02-20T00:33:04.634Z","avatar_url":"https://github.com/alekmaul.png","language":"C","readme":"# A library to code in C or ASM for the Nintendo SNES #\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/license/mit/) [![Discord](https://img.shields.io/badge/chat-on%20discord-blue.svg)](https://discord.com/channels/@me)\n\n\n**PVSnesLib** (**P**rogrammer **V**aluable **Snes** **Lib**rary) is an open and free library to develop programs for the Nintendo SNES using the C programming language.\n\nCreated initially for the 20th birthday of the Nintendo SNES (2012) and based on Ulrich Hecht [SDK](http://code.google.com/p/snes-sdk/), it has been evolved a lot and is now mainly coded in assembler for performances reasons. It is also directly usable in asm for those who do not want to use C language but without rewriting everything from scratch.\n\nIt contains a snes-sdk compiler / linker and a library (sources included) which offer facilities to use backgrounds / sprites / pads / music \u0026 sound on the Nintendo SNES system.\nIt also contains examples which demonstrate how to use the functions in the library.\n\n# Before getting started #\nFirst, you need to know that PVSnesLib uses the C language (assembly is possible and highly recommended for some speed aspects). It's highly recommended to be familiar with C programming before trying to develop with PVSnesLib. Learning C language at same time as learning Super Nintendo programming is definitely too difficult and you will end up getting nowhere. It's also important to have a good knowledge of the Super Nintendo hardware.\n\nHere are good entry points to know how Super Nintendo works:\n\n- [**SFC Development Wiki**](https://wiki.superfamicom.org/)\n- [**SNESdev Wiki**](https://snes.nesdev.org/wiki/SNESdev_Wiki)\n- [**Super NES Programming**](https://en.wikibooks.org/wiki/Super_NES_Programming/)\n\n# Current release #\n[![Current Release](https://img.shields.io/github/v/release/alekmaul/pvsneslib?label=Current%20Release)](https://github.com/alekmaul/pvsneslib/releases/latest)\n![Downloads](https://img.shields.io/github/downloads/alekmaul/pvsneslib/total?label=Total%20Downloads)\n\n\n\u003ca href=\"https://github.com/alekmaul/pvsneslib/releases/download/4.3.0/pvsneslib_430_64b_windows_release.zip\"\u003e\u003cimg src=\"https://img.shields.io/badge/Windows-97C40F?style=for-the-badge\u0026logo=windows\u0026logoColor=white\" alt=\"PVSnesLib Windows Release\"\u003e\u003c/a\u003e \n\u003ca href=\"https://github.com/alekmaul/pvsneslib/releases/download/4.3.0/pvsneslib_430_64b_linux_release.zip\"\u003e\u003cimg src=\"https://img.shields.io/badge/Linux-F48041?style=for-the-badge\u0026logo=linux\u0026logoColor=white\" alt=\"PVSnesLib Linux Release\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/alekmaul/pvsneslib/releases/download/4.3.0/pvsneslib_430_64b_darwin_release.zip\"\u003e\u003cimg src=\"https://img.shields.io/badge/mac%20os-0E7FC0?style=for-the-badge\u0026logo=apple\u0026logoColor=white\" alt=\"PVSnesLib MacOS Release\"\u003e\u003c/a\u003e\n\nTo install the library, please download the latest [release](https://github.com/alekmaul/pvsneslib/releases/latest) or with the link below and follow instructions on the [Wiki pages](https://github.com/alekmaul/pvsneslib/wiki).\n\nYou can also see the [documentation](https://alekmaul.github.io/pvsneslib/) generated from sources.\n\n# Visual Studio Code #\n\nYou can find a Visual Studio Code template in the [vscode-template](https://github.com/alekmaul/pvsneslib/tree/master/vscode-template) folder to help PVSnesLib integration with it.\n\n# Build status #\n\n[![PVSNESLIB Build and Package](https://github.com/alekmaul/pvsneslib/actions/workflows/pvsneslib_build_package.yml/badge.svg?branch=develop)](https://github.com/alekmaul/pvsneslib/actions/workflows/pvsneslib_build_package.yml)\n\nYou can find with the link below the last stable builds of PVSnesLib. They are development builds, you can have bugs not yet resolved with them.\n\n# Dependencies and Docker #\n\nPVSnesLib works on Windows, Linux and MacOS systems.\n\nFor people who cannot work with the current builds of PVSneslib, you can build your docker image by following instructions available in the docker folder. Please see [this wiki page](https://github.com/alekmaul/pvsneslib/wiki/Compiling-from-sources) to get all required dependencies.\n\n\nTo use it, you will need at least :\n\n- a unix-like environment like msys2 if you work on Windows\n\nIf you want to compile the whole project, please see [this wiki page](https://github.com/alekmaul/pvsneslib/wiki/Compiling-from-sources) to get all required dependencies.\n\n\n# Contribution #\n\n[GitHub project](https://github.com/alekmaul/pvsneslib)\n\nTo discuss about the library, your project or to request help, join us on [Discord](https://discord.gg/DzEFnhB).\n\nPVSneslib and affiliated tools are distributed under the MIT license (see [pvsneslib_license](https://github.com/alekmaul/pvsneslib/blob/master/pvsneslib/pvsneslib_license.txt) file).\n\n# Support PVSneslib #\n\nPVSneslib is free but you can donate to support its development:\u003cbr\u003e \u003cbr\u003e\n[![Paypal](https://www.paypalobjects.com/fr_FR/FR/i/btn/x-click-but04.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=Y5USKF23DQVLC)\n\n# Powered by PVSneslib #\n\nThese projects are based on PVSnesLib _(non-exhaustive list)_:\n\n![alt text](pvsneslib/docs/images/yoyoshuriken.gif)\n\nYo-Yo Shuriken by [Dr. Ludos](https://drludos.itch.io/yo-yo-shuriken)\n\n![alt text](pvsneslib/docs/images/eyra.gif)\n\nEyra by [Second Dimension](https://www.second-dimension.com/store/eyra-the-crow-maiden-snes)\n\n![alt text](pvsneslib/docs/images/sydneycod.gif)\n\nSydney Hunter by [CollectorVision](https://collectorvision.com/store/shop/snes/snes-sydney-hunter-the-caverns-of-death-pal/)\n\n\n# Special thanks #\n\n- [**RetroAntho**](https://github.com/RetroAntho) for his great help to move wla-dx to last version and also for all compilation optimizations in Makefile, snes_rules and, at least, for keeping me motivated to update PVSnesLib 😉.\n- [**Kobenairb**](https://github.com/kobenairb/) for the port of python optimiser to c version, docker images, building scripts harmonisation and cleaning and the tcc-816 upgrade.\n- [**Digifox**](https://github.com/malayli) and **lunoka** for their work on the intro logo.\n- **Ulrich Hecht** for [SNES C SDK](http://code.google.com/p/snes-sdk/).\n- **Byuu** for [bass](http://byuu.org/programming/), the assembler with SPC700 support.\n- **Mic_** for 816-tcc, [sixpack](http://jiggawatt.org/badc0de/sixpack/), [optimore](http://jiggawatt.org/optimore-816r2.zip) and constify.\n- **Neviksti** for pcx2snes.\n- [**Shiru**](http://shiru.untergrund.net/) for snesbmp idea \u0026 sound tools.\n- [**Mukunda**](http://snes.mukunda.com/) for smconv tool.\n- **RedBug** for constify tcc bug fix and tips for Linux and Docker.\n- [**Mills32**](https://github.com/mills32/) for his mode7 3D example.\n- [**N_Arno**](https://github.com/nArnoSNES/) for his help on Linux version.\n- [**DigiDwrf**](https://github.com/DigiDwrf/) for hirom / fastrom support and also mouse \u0026 superscope support.\n- [**undisbeliever**](https://github.com/undisbeliever/castle_platformer/) for the great update to vblank code and the map engine example.\n\nAnd, of course, all the [**discord community**](https://discord.gg/DzEFnhB) !\n\nThanks !\n","funding_links":["https://www.paypal.com/donate/?hosted_button_id=6K82M5NN8YMMU","https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=Y5USKF23DQVLC"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falekmaul%2Fpvsneslib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falekmaul%2Fpvsneslib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falekmaul%2Fpvsneslib/lists"}