alekmaul / pvsneslib

PVSnesLib : A small, open and free development kit for the Nintendo SNES
MIT License
804 stars 70 forks source link
c nintendo-snes programming sdk tcc

A library to code in C or ASM for the Nintendo SNES

License: MIT Discord

PVSnesLib (Programmer Valuable Snes Library) is an open and free library to develop programs for the Nintendo SNES using the C programming language.

Created initially for the 20th birthday of the Nintendo SNES (2012) and based on Ulrich Hecht 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.

It contains a snes-sdk compiler / linker and a library (sources included) which offer facilities to use backgrounds / sprites / pads / music & sound on the Nintendo SNES system. It also contains examples which demonstrate how to use the functions in the library.

Before getting started

First, 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.

Here are good entry points to know how Super Nintendo works:

Current release

Current Release Downloads

PVSnesLib Windows Release PVSnesLib Linux Release PVSnesLib MacOS Release

To install the library, please download the latest release or with the link below and follow instructions on the Wiki pages.

You can also see the documentation generated from sources.

Visual Studio Code

You can find a Visual Studio Code template in the vscode-template folder to help PVSnesLib integration with it.

Build status

PVSNESLIB Build and Package

You 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.

Dependencies and Docker

PVSnesLib works on Windows, Linux and MacOS systems.

For 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 to get all required dependencies.

To use it, you will need at least :

If you want to compile the whole project, please see this wiki page to get all required dependencies.

Contribution

GitHub project

To discuss about the library, your project or to request help, join us on Discord.

PVSneslib and affiliated tools are distributed under the MIT license (see pvsneslib_license file).

Support PVSneslib

PVSneslib is free but you can donate to support its development:

Paypal

Powered by PVSneslib

These projects are based on PVSnesLib (non-exhaustive list):

alt text

Yo-Yo Shuriken by Dr. Ludos

alt text

Eyra by Second Dimension

alt text

Sydney Hunter by CollectorVision

Special thanks

And, of course, all the discord community !

Thanks !