Skip to content
Ronny Chan edited this page Jul 14, 2016 · 13 revisions

Snowflake

Build Status

appveyor travis codecov license
Windows Build status Travis Codecov License

Latest Version

MyGetFeed NuGet version

Roadmap

C# API Features

  • Implement Dapper in database access
  • Reflection-based Emulator Configuration API
  • Plugin-based Controller Enumeration
  • Implement PluginConfiguration with a SimpleKeyValueStore
  • Smarter AJAX/IPC framework?
  • Add-in plugins as submodules
  • Remove MediaStore

Every single one of these to-do-items except for adding in submodules will probably break existing API. Once they have been completed, the API will be promoted to 1.0.0-alpha and locked in for good.

Backend and Emulator Features

  • Squirrel updating for core assemblies and emulators
  • Implement more emulators (API v1.0.0)
  • Improved MAME and DOSBOX support
  • OpenVGDB scrapers
  • LaunchBox Metadata.xml support (do we want to read this into an awagame-like database)
  • awagame database support (build a new one with game-only TOSECs, Redump, and No-Intro dats)
  • ZIP file support when launching and running games

Frontend Features

  • Rewrite JSON API to use ES7 async/await with Babel instead of CoffeeScript.
  • Expose package manager to JavaScript.
  • Design a framework-less bootstrap that can be used to handle package management and theme bootstrapping from electron (Needs to inject base snowflake JavaScript)
  • Rewrite the frontend to use Polymer 1.0, [@PolymerElements/iron-list#168](https://github.com/PolymerElements/iron-list/pull/168 seems promising.) (Should improve performance a lot!)
  • Redesign the frontend to be more user-friendly.

After Squirrel updating has been implemented and the HTML frontend is usable, we will be able to approach Alpha.

Documentation and Testing

  • Redesign logo and typemark to be cleaner
  • Write tests and attempt to get coverage back to 60-70% covered
  • Write comprehensive documents on how to get started writing themes for Snowflake
  • Write comprehensive API documentation on how Snowflake's internals function

Future Plans

  • Cloud saves backup.
  • Screenshots sharing and social features.
  • Cross-frontend cloud features
  • Linux support (Currently builds on Mono, but System.Data.Sqlite is not being co-operative when testing)
  • CoreCLR support (May require rewrite fork with integrated plugins, depends if MEF gets ported to .NET CORE)
  • C++/CLR access to libRetro (Might be worth rewriting, too large of a job here, see @team-phoenix/Phoenix
Clone this wiki locally