SnowflakePowered / snowflake

:snowflake: :video_game: Emulator Frontend and SDK
http://snowflakepowe.red
Mozilla Public License 2.0
250 stars 15 forks source link
emulation emulator emulator-frontends game gaming retroarch retrogaming videogames

Snowflake

Build Status

Windows Linux codecov codefactor lgtm license
Windows Build status Linux Codecov CodeFactor Total alerts License

Latest Version

MyGetFeed NuGet version

Snowflake is a framework for building flexible and beautiful emulator frontends. With features such as advanced configuration generation and an intelligent scraping system, Snowflake provides a powerful set of tools to manage, play, and organize your games when designing your dream frontend using the language of your choice.

Features

Snowflake features innovative solutions to many problems with current emulator frontends.

At its core, Snowflake is designed to be moddable and easy to develop for, with a comprehensive C# API for extensibility and GraphQL interface for frontend UIs.

Star this repository and bookmark our website at http://snowflakepowe.red to keep up with Snowflake's development. We'll have something new in store for you soon!

Getting Started

Snowflake does not currently have a well defined install process for end-users, but it is easy to set up a development environment. You will need the .NET 6 SDK to get started.

$ git clone --recursive https://github.com/SnowflakePowered/snowflake/
$ cd snowflake
$ dotnet run --project build -- Bootstrap
$ cd out
$ dotnet snowflake install-all

This command will build and install all support modules required for Snowflake to be functional to your application data directory (%appdata%\snowflake\modules or ~/.snowflake/snowflake/modules on Linux). Note that you may have to delete the installed module assembly.Snowflake.Framework.Test.InvalidComposable, which is designed deliberately to error on load, however this is not necessary.

As well, input management APIs are currently only available on Windows. Attempting to use these APIs on Linux will fail to enumerate any device.

Legal

Snowflake is licensed under the Mozilla Public License 2.0 (MPL2). Since May 1, 2016, this license is retroactively applied to all prior copies of Snowflake's source code which may have been licensed under different terms.

Snowflake does not in any way facilitate the download of illegal ROM images or warez of any kind.