Hanselminutes with Scott Hanselman

Making SNES ROMS with C# and Matthew Shapiro's DotnetSnes

May 1, 2025
Matthew Shapiro, a staff video architect at Game Changer and creator of DotnetSnes, dives into retro game development, combining C# with beloved SNES hardware. They discuss the complexities of adapting modern programming languages for classic games and the challenges faced by indie developers. The conversation flows through the intricacies of debugging and optimizing code, the role of community contributions, and the exciting potential of FPGAs in gaming. This is a passionate journey that merges nostalgia with cutting-edge technology.
Ask episode
AI Snips
Chapters
Books
Transcript
Episode notes
ANECDOTE

Unexpected Viral SNES Project

  • Matthew Shapiro posted a project enabling C# to create SNES ROMs and it unexpectedly went viral on Reddit and Hacker News.
  • He found that someone else posted it first, leading to exposure and a community forming with contributors.
INSIGHT

Transpiling MSIL to C for Embedded

  • Matthew shifted focus from embedded optimization to running C# on devices by transpiling MSIL to C, leveraging Nim's C compilation approach.
  • This enabled running C# on constrained hardware like SNES and even in Linux kernel eBPF programs.
INSIGHT

C# in eBPF Kernel Space

  • eBPF allows safe, sandboxed bytecode execution in the Linux kernel without crashing or memory issues.
  • Matthew created a proof of concept running C# code compiled to eBPF programs, effectively running C# in kernel space.
Get the Snipd Podcast app to discover more snips from this episode
Get the app