Running .NET on the NES
summary
Builds a pipeline that compiles C# to MSIL then transpiles MSIL to 6502 assembly via a custom MSIL-to-6502 transpiler hooked into MSBuild, emits a valid 512 KB NES .nes image and launches an emulator. Uses System.Reflection.Metadata, a copied NES lib API (about 44 C functions), and 8bitworkshop.com for disassembly and testing. Demos show Hello World and sprite tinting running in an emulator and ROMs that can be flashed, with most samples working but no GC, limited method support and four unknown bytes recently resolved.
AI-written summary · about
chapters (12)
- 0:00Introduction
- 1:54Overview
- 3:34Why
- 4:59Creating the project
- 9:02My thought process
- 10:15General pipeline
- 11:16Compilers
- 14:16Code
- 17:02Thought Process
- 24:11Writing the ROM
- 29:46MsBuild
- 34:45Disassembly
related talks
43mRunning .NET on the NES
48mBuilding a Game Boy emulator in .NET Core!
28mHow to Build a NES Emulator
53mSo you want to create your own .NET runtime?
51mBuilding a Game Boy emulator in .NET Core!
01h 02mSo you want to create your own .NET runtime?
30mRuby on NES - how to make the smallest ruby ever
01h 00mUnveiling .NET Secrets with the World's Smallest C# Program
