Over a million developers have joined DZone.

XNACPC - A PC & Xbox 360 Amstrad CPC emulator, written in C# and XNA

DZone's Guide to

XNACPC - A PC & Xbox 360 Amstrad CPC emulator, written in C# and XNA

· ·
Free Resource

"On and off during the last month or so, I’ve worked toward finishing a project I wrote about last year. It’s an Amstrad CPC Emulator, written in C# using the Microsoft XNA library. I’ve written plenty about the background and motivation in the previous blog post. This post is just here to announce the finished product, and touch a little on the things I’ve worked on recently.

The picture above is from Hewson’s “Nebulus”. Now that the emulator has a pretty complete feature set; games like these are very playable now. It makes a world of difference having the audio fully working now, for example. It also is great to finally be able to play at the original, full frame rate on Xbox 360. Surprisingly the 360 had trouble emulating this seemingly primitive machine!

Anyway, after the jump is a video showing the emulator in action on the 360…

XNACPC In Action

Here you go! This video shows a number of games running on the emulator. It’s taken with a point-and-shoot camera, in a poorly lit room. So the quality isn’t too great, unfortunately. Some games have pretty washed out colors and bad contrast; some look fine though.

I guess I could have captured it from my PC, but the whole point of the emulator was to get it running on the Xbox 360. The fun part is showing it off on the real thing. :)

  • CRTC – Good Timing and Accurate Video
  • Audio – Silence Isn’t Golden
  • Z80, PPI and Other Hardware Bugs
  • CRT Shader – A Bit of Polish
  • Xbox 360 – Compact Framework Creaking Under Pressure
  • The Source
  • PC Version


The fact he's released the source to this is pretty darn awesome... (oh yeah and that it works on the 360 and PC is pretty darn cool too. :)


Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}