Skip to content

Latest commit

 

History

History

XamariNES.UI

XamariNES.UI

What's an emulator without a UI to play it? Enter the Microsoft Xamarin Framework!

I actually first started using Xamarin several years ago and fell in love immediately. As a career .Net Developer, it was so refreshing to have a mobile framework that allowed me to use a language I'm very familiar with.

Things only got better when Xamarin.Forms was released, which allowed me to basically write-once-deploy-many for mobile and desktop applications. Obviously the name of this project is shared with Xamarin because the cross platform nature of XamariNES would not have been possible without Xamarin and .Net Standard.

Supported Platforms

Platform Support Details
iOS YES Release mode using LLVM compiler runs at full speed
Android YES Release mode runs at full speed on MOST devices
macOS YES-ish Mouse support for touch events, need to add keyboard bindings
UWP YES-ish Mouse support for touch events, need to add keyboard bindings
WPF NO Waiting for .Net Core 3.0 Final
WASM NO ALTHOUGH, Completely possible using Ooui

Loading ROMS

Ok -- So obviously I couldn't post this to GitHub with commercial games.

Currently XamariNES supports one ROM at a time, loading it from an Embedded Resource. The path for the resource is a string constant in the EmulatorHomeViewModel.cs file.

Ideally in the future folks will be able to load their own ROMs using Xamarin Essentials, which exposes friendly cross-platform file system access. Just didn't have the time :)

Playing

Just for fun, when you start XamariNES you'll get the classic "snow" screen, which for your youngsters out there is what you used to see when you turned on an old CRT television.

Press the POWER button on the NES console to start the emulator.

The controller on the bottom of the screen supports multi-touch pretty well, need to add support for A+B being pressed at the same time with one finger.

Thanks

Huge shout-outs to folks at Microsoft on the Xamarin team, their conference sessions, videos, and blogs have been immensely helpful as I continue learning the Xamarin Framework: