DotnetSnes Allows using .net languages to create real working SNES roms! How Does It Work? This works by providing a .net library that abstracts functions and globals used in creating SNES games. Once a project using the DotnetSnes.Core library is compiled, the resulting DLL is transpiled to C using the Dotnet To C transpiler (dntc). The game's C code is then compiled against the PvSnesLib SDK toolchain to create a working rom. Due to the limitations of the SNES, it is not always possible to write idiomatic C# for a working rom. For example: Minimal System level type support level type support No dynamic allocations are supported (thus no reference type support) Minimizing variables on the stack is important Pointer/address tracking is common to save memory Even with these limitations, it is still possible to create real SNES games, though there might be instances where it may be necessary to go to a lower level than C# supports. Note: The dntc transpiler has its own limitations on what MSIL operations it supports and doesn't yet support, so it's possible to hit code that should work but the transpiler does not yet have support for. Getting Started There are several things to be aware of before getting started The PVSnesLib SDK works best under Linux. If developing on windows, you'll want to do the final compilation of the SNES rom under WSL, but obviously you can use windows emulators to test the resulting rom. This repository should be cloned using ssh credentials. This is because all submodules (and submodules within submodules) are using git@ addresses and I have not yet figured out a good way to allow them to be mixed. See the Github SSH key docs for help. credentials. This is because all submodules (and submodules within submodules) are using addresses and I have not yet figured out a good way to allow them to be mixed. See the Github SSH key docs for help. Make sure to do a full recursive submodule update after cloning (e.g. git submodule update --init --recu...
First seen: 2025-05-04 04:47
Last seen: 2025-05-04 08:47